summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r600
diff options
context:
space:
mode:
authorDave Airlie <[email protected]>2015-11-30 16:00:02 +1000
committerDave Airlie <[email protected]>2015-12-07 09:59:01 +1000
commitb8df7d03c8ff045233dff4c98016329577204ae6 (patch)
treedf024680d2549fb23d405a4335391c72a0b7325f /src/gallium/drivers/r600
parent7b5878ee0491e7a93914389a8369cd6752b9757d (diff)
r600: handle SIMD allocation issue with HS/LS
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 <[email protected]>
Diffstat (limited to 'src/gallium/drivers/r600')
-rw-r--r--src/gallium/drivers/r600/evergreen_state.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/gallium/drivers/r600/evergreen_state.c b/src/gallium/drivers/r600/evergreen_state.c
index 229baab8cba..355179cd407 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));