Mesa (master): r600g/sb: fix kcache handling on r6xx

Vadim Girlin vadimg at kemper.freedesktop.org
Tue May 7 01:07:44 UTC 2013


Module: Mesa
Branch: master
Commit: 1c28e7c5a156fd209fc5cae2b86f416d14b7c4c8
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1c28e7c5a156fd209fc5cae2b86f416d14b7c4c8

Author: Vadim Girlin <vadimgirlin at gmail.com>
Date:   Sun May  5 06:01:20 2013 +0400

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 <vadimgirlin at gmail.com>

---

 src/gallium/drivers/r600/sb/sb_sched.cpp |    6 +++++-
 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 b21b342..d0045ce 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);




More information about the mesa-commit mailing list