[PATCH v9 0/8] More missing XeLP workarounds

Tvrtko Ursulin tvrtko.ursulin at igalia.com
Wed Jul 9 10:54:47 UTC 2025


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.

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
  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
  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                   | 266 +++++++++++++++---
 drivers/gpu/drm/xe/xe_lrc_types.h             |   3 +-
 drivers/gpu/drm/xe/xe_wa_oob.rules            |   2 +
 6 files changed, 243 insertions(+), 37 deletions(-)

-- 
2.48.0



More information about the Intel-xe mailing list