[PATCH v10 0/8] More missing XeLP workarounds
Lucas De Marchi
lucas.demarchi at intel.com
Mon Jul 14 15:27:54 UTC 2025
On Fri, Jul 11, 2025 at 05:01:45PM +0100, Tvrtko Ursulin wrote:
>Some more missing XeLP workarounds. This time including some which need to go
>into indirect context, which also means some plumbing had to be added.
>
>Includes a fix to use iosys helpers for existing wa bb emission since there is a
>code dependency on it.
>
>v2:
> * Use iosys helpers.
> * Split indirect context plumbing as a separate patch.
> * Tweak where and how Wa_16010904313 is emitted.
> * Move Wa_18022495364 into the wa_bb.
>
> v3:
> * Rewrite on top of Lucas' wa bb changes - use same infrastructure.
>
>v4:
> * Rework due 3a1edef8f4b5 ("drm/xe: Make WA BB part of LRC BO").
>
>v5:
> * Fix indirect ring state offset calculation.
> * Removed extra space in one patch.
>
>v6:
> * Fixed indirect ctx MI_NOOP padding to 64B cacheline.
> * Do not add negative errors codes to reported emitted counts.
> * Renamed workaround emission functions. (Lucas)
>
>v7:
> * Rebase for removal of bo->size.
>
>v8:
> * Rename bo emission helpers. (Lucas)
> * Drop XELP prefix from LRC layout define. (Lucas)
> * Drop first patch from the series as it was merged.
>
>v9:
> * Contain emission helpers arguments in a struct. (Lucas)
> * Use REG_FIELD_PREP for CTX_INDIRECT_CTX_OFFSET_DEFAULT. (Lucas)
> * Coding style tweaks. (Lucas)
> * Improved comment. (Lucas)
> * Split indirect ctx bo size defined from maximum hw supported size.
>
>v10:
> * Tweak code formatting in last two patches.
> * Drop LRC_INDIRECT_CTX_SIZE. (Lucas)
> * Use reserve_dw = 0 for the indirect ctx. (Lucas)
>
>Cc: Lucas De Marchi <lucas.demarchi at intel.com>
>Cc: Matt Roper <matthew.d.roper at intel.com>
>
>Tvrtko Ursulin (8):
> drm/xe: Generalize wa bb emission code
> drm/xe: Pass wa bb setup arguments in a struct
there were a few checkpatch warnings in this that I fixed up:
-:34: WARNING:SPACE_BEFORE_TAB: please, no space before tabs
#34: FILE: drivers/gpu/drm/xe/xe_lrc.c:982:
+^Istruct xe_lrc ^I^I*lrc;$
-:37: WARNING:UNSPECIFIED_INT: Prefer 'unsigned int' to bare use of 'unsigned'
#37: FILE: drivers/gpu/drm/xe/xe_lrc.c:985:
+ unsigned offset;
-:39: WARNING:UNSPECIFIED_INT: Prefer 'unsigned int' to bare use of 'unsigned'
#39: FILE: drivers/gpu/drm/xe/xe_lrc.c:987:
+ unsigned num_funcs;
> drm/xe: Rename utilization workaround emission function
> drm/xe: Track number of written dwords from workaround batch buffer
> emission
> drm/xe: Allow specifying number of extra dwords at the end of wa bb
> emission
> drm/xe: Add plumbing for indirect context workarounds
and in this one:
s/CTX_INDIRECT_OFFSET_MASK/CTX_INDIRECT_CTX_OFFSET_MASK/
I don't like the repeated CTX, but if we are using it in the other
define, we should use it here too.
Pushed the patches 1-7 to drm-xe-next. I'm still waiting to hear from
hw/validation about the WA. I expect to get this applied next week.
thanks
Lucas De Marchi
> drm/xe/xelp: Implement Wa_16010904313
> drm/xe/xelp: Add Wa_18022495364
>
> .../gpu/drm/xe/instructions/xe_mi_commands.h | 1 +
> drivers/gpu/drm/xe/regs/xe_engine_regs.h | 3 +
> drivers/gpu/drm/xe/regs/xe_lrc_layout.h | 5 +
> drivers/gpu/drm/xe/xe_lrc.c | 263 +++++++++++++++---
> drivers/gpu/drm/xe/xe_lrc_types.h | 3 +-
> drivers/gpu/drm/xe/xe_wa_oob.rules | 2 +
> 6 files changed, 240 insertions(+), 37 deletions(-)
>
>--
>2.48.0
>
More information about the Intel-xe
mailing list