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

Marek Olšák maraeo at gmail.com
Mon Dec 7 03:36:44 PST 2015


On Mon, Dec 7, 2015 at 9:10 AM,  <eocallaghan at alterapraxis.com> wrote:
> 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,

It's not an erratum, it's a hardware requirement by design. GCN has
the same requirement.

Marek


More information about the mesa-dev mailing list