[Mesa-dev] [PATCH 47/53] r600: handle SIMD allocation issue with HS/LS

Dave Airlie airlied at gmail.com
Sun Nov 29 22:20:56 PST 2015


From: Dave Airlie <airlied at redhat.com>

At least one SIMD must be kept away from the HS/LS
stages in order to avoid a hw issue on evergreen/cayman.

This patch implements this workaround.

Signed-off-by: Dave Airlie <airlied at redhat.com>
---
 src/gallium/drivers/r600/evergreen_state.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/gallium/drivers/r600/evergreen_state.c b/src/gallium/drivers/r600/evergreen_state.c
index b3109c7..c1c8f22 100644
--- a/src/gallium/drivers/r600/evergreen_state.c
+++ b/src/gallium/drivers/r600/evergreen_state.c
@@ -2861,6 +2861,11 @@ void evergreen_init_atom_start_cs(struct r600_context *rctx)
 	r600_store_config_reg(cb, R_008E2C_SQ_LDS_RESOURCE_MGMT,
 			      S_008E2C_NUM_PS_LDS(0x1000) | S_008E2C_NUM_LS_LDS(0x1000));
 
+	r600_store_config_reg_seq(cb, R_008E20_SQ_STATIC_THREAD_MGMT1, 3);
+	r600_store_value(cb, 0xffffffff);
+	r600_store_value(cb, 0xffffffff);
+	r600_store_value(cb, 0xfffffffe);
+
 	r600_store_config_reg(cb, R_009100_SPI_CONFIG_CNTL, 0);
 	r600_store_config_reg(cb, R_00913C_SPI_CONFIG_CNTL_1, S_00913C_VTX_DONE_DELAY(4));
 
-- 
2.5.0



More information about the mesa-dev mailing list