[Mesa-dev] [PATCH] r600: apply SIMD workaround to cayman also.
eocallaghan at alterapraxis.com
eocallaghan at alterapraxis.com
Mon Dec 7 00:10:54 PST 2015
On 2015-12-07 19:00, Dave Airlie wrote:
> 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 */
Would be ideal to have a inline comment to make explicit this is
addressing a hw erratum but otherwise,
Reviewed-by: Edward O'Callaghan <eocallaghan at alterapraxis.com>
Tested-by: Edward O'Callaghan <eocallaghan at alterapraxis.com>
Thanks for the prompt fix Dave.
More information about the mesa-dev
mailing list