[Mesa-dev] [PATCH] r600: apply SIMD workaround to cayman also.

Dave Airlie airlied at gmail.com
Mon Dec 7 00:00:33 PST 2015


From: Dave Airlie <airlied at redhat.com>

At last on ARUBA this is required to stop tessellation hanging
in heaven.

This removes one of the SIMDs from use by the HS/LS.

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

diff --git a/src/gallium/drivers/r600/evergreen_state.c b/src/gallium/drivers/r600/evergreen_state.c
index 571ea86..d8a14e1 100644
--- a/src/gallium/drivers/r600/evergreen_state.c
+++ b/src/gallium/drivers/r600/evergreen_state.c
@@ -2424,7 +2424,7 @@ static void cayman_init_atom_start_cs(struct r600_context *rctx)
 	struct r600_command_buffer *cb = &rctx->start_cs_cmd;
 	int tmp, i;
 
-	r600_init_command_buffer(cb, 336);
+	r600_init_command_buffer(cb, 342);
 
 	/* This must be first. */
 	r600_store_value(cb, PKT3(PKT3_CONTEXT_CONTROL, 1, 0));
@@ -2441,6 +2441,11 @@ static void cayman_init_atom_start_cs(struct r600_context *rctx)
 	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));
 
+	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_context_reg_seq(cb, R_028900_SQ_ESGS_RING_ITEMSIZE, 6);
 	r600_store_value(cb, 0); /* R_028900_SQ_ESGS_RING_ITEMSIZE */
 	r600_store_value(cb, 0); /* R_028904_SQ_GSVS_RING_ITEMSIZE */
-- 
2.4.3



More information about the mesa-dev mailing list