[PATCH 2/2] drm/xe/pvc: Fix WA 18020744125

Lucas De Marchi lucas.demarchi at intel.com
Fri Mar 8 18:22:01 UTC 2024


On Wed, Mar 06, 2024 at 03:09:51PM -0800, Matt Roper wrote:
>On Wed, Mar 06, 2024 at 11:21:28AM -0800, Lucas De Marchi wrote:
>> With the current state GUC_WA_RCS_REGS_IN_CCS_REGS_LIST could in theory
>> be removed since there is no render register being added to the list of
>> compute WAs. However the real issue is that 18020744125 is incomplete
>> and not setting the RING_HWSTAM on render as it should.
>>
>> Writing this in RTP is a little more tricky as we want to write to
>> another's engine base when the match happens: first compute engine and
>> no render present. So use RING_HWSTAM(RENDER_RING_BASE) instead of the
>> usual XE_RTP_ACTION_FLAG(ENGINE_BASE).
>>
>> Signed-off-by: Lucas De Marchi <lucas.demarchi at intel.com>
>
>Reviewed-by: Matt Roper <matthew.d.roper at intel.com>


now that PVC is back to life, confirmed that this works as intended.
Diff from /sys/kernel/debug/dri/1/gt0/register-save-restore:

  bcs8
         REG[0x3ee0c4] clr=0x00003f7e set=0x00000102 masked=yes mcr=no
  ccs0
+       REG[0x2098] clr=0xffffffff set=0xffffffff masked=no mcr=no
         REG[0xe48c] clr=0x00000800 set=0x00000800 masked=yes mcr=yes
         REG[0xe7c8] clr=0x40000000 set=0x40000000 masked=no mcr=yes
         REG[0x1a0c4] clr=0x00003f7e set=0x00000104 masked=yes mcr=no


Applied to drm-xe-next. Thanks

Lucas De Marchi

>
>> ---
>>  drivers/gpu/drm/xe/xe_wa.c | 5 +++++
>>  1 file changed, 5 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/xe/xe_wa.c b/drivers/gpu/drm/xe/xe_wa.c
>> index 2460c570e628..54740d246310 100644
>> --- a/drivers/gpu/drm/xe/xe_wa.c
>> +++ b/drivers/gpu/drm/xe/xe_wa.c
>> @@ -377,6 +377,11 @@ static const struct xe_rtp_entry_sr engine_was[] = {
>>  	  XE_RTP_RULES(PLATFORM(PVC), FUNC(xe_rtp_match_first_render_or_compute)),
>>  	  XE_RTP_ACTIONS(SET(ROW_CHICKEN4, XEHP_DIS_BBL_SYSPIPE))
>>  	},
>> +	{ XE_RTP_NAME("18020744125"),
>> +	  XE_RTP_RULES(PLATFORM(PVC), FUNC(xe_rtp_match_first_render_or_compute),
>> +		       ENGINE_CLASS(COMPUTE)),
>> +	  XE_RTP_ACTIONS(SET(RING_HWSTAM(RENDER_RING_BASE), ~0))
>> +	},
>>  	{ XE_RTP_NAME("14014999345"),
>>  	  XE_RTP_RULES(PLATFORM(PVC), ENGINE_CLASS(COMPUTE),
>>  		       GRAPHICS_STEP(B0, C0)),
>> --
>> 2.43.0
>>
>
>-- 
>Matt Roper
>Graphics Software Engineer
>Linux GPU Platform Enablement
>Intel Corporation


More information about the Intel-xe mailing list