summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorVadim Girlin <[email protected]>2013-05-05 06:01:20 +0400
committerVadim Girlin <[email protected]>2013-05-07 04:40:26 +0400
commit1c28e7c5a156fd209fc5cae2b86f416d14b7c4c8 (patch)
treeaf5bc9d382b148b467ef515ca5878c30d9671527 /src
parent03ef60681e61a52dee7fa3285618c313cf13f50c (diff)
r600g/sb: fix kcache handling on r6xx
Use the same limit for kcache constants in alu group on r6xx as on other chips (two const pairs). Relaxing this will require additional checks to make sure that all 4 consts in the group come from 2 kcache sets (clause limit), probably without noticeable improvements of shader performance. Signed-off-by: Vadim Girlin <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/gallium/drivers/r600/sb/sb_sched.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/gallium/drivers/r600/sb/sb_sched.cpp b/src/gallium/drivers/r600/sb/sb_sched.cpp
index b21b342578d..d0045ce75ef 100644
--- a/src/gallium/drivers/r600/sb/sb_sched.cpp
+++ b/src/gallium/drivers/r600/sb/sb_sched.cpp
@@ -43,7 +43,11 @@ namespace r600_sb {
using std::cerr;
rp_kcache_tracker::rp_kcache_tracker(shader &sh) : rp(), uc(),
- sel_count(sh.get_ctx().is_r600() ? 4 : 2) {}
+ // FIXME: for now we'll use "two const pairs" limit for r600, same as
+ // for other chips, otherwise additional check in alu_group_tracker is
+ // required to make sure that all 4 consts in the group fit into 2
+ // kcache sets
+ sel_count(2) {}
bool rp_kcache_tracker::try_reserve(sel_chan r) {
unsigned sel = kc_sel(r);