Mesa (master): r600/sb: fix a bug emitting ar load from a constant.

Dave Airlie airlied at kemper.freedesktop.org
Thu Jan 18 03:39:44 UTC 2018


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

Author: Dave Airlie <airlied at redhat.com>
Date:   Wed Jan 10 03:41:57 2018 +0000

r600/sb: fix a bug emitting ar load from a constant.

Some tess shaders were doing MOVA_INT _, c0.x on cayman, and then
hitting an assert in sb_bc_finalize.cpp:translate_kcache.

This makes sure the toplevel kcache tracker gets updated,
and the clause gets fixed up.

Reviewed-by: Roland Scheidegger <sroland at vmware.com>
Cc: <mesa-stable at lists.freedesktop.org>
Signed-off-by: Dave Airlie <airlied at redhat.com>

---

 src/gallium/drivers/r600/sb/sb_sched.cpp | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/gallium/drivers/r600/sb/sb_sched.cpp b/src/gallium/drivers/r600/sb/sb_sched.cpp
index 2fbec2f77e..4158317765 100644
--- a/src/gallium/drivers/r600/sb/sb_sched.cpp
+++ b/src/gallium/drivers/r600/sb/sb_sched.cpp
@@ -1130,6 +1130,9 @@ void post_scheduler::emit_clause() {
 	if (alu.current_ar) {
 		emit_load_ar();
 		process_group();
+		if (!alu.check_clause_limits()) {
+			// Can't happen since clause only contains MOVA/CF_SET_IDX0/1
+		}
 		alu.emit_group();
 	}
 




More information about the mesa-commit mailing list