[PATCH v9 00/12] AuxCCS handling and render compression modifiers

Tvrtko Ursulin tursulin at ursulin.net
Mon Aug 11 08:41:29 UTC 2025


On 25/07/2025 21:03, Tvrtko Ursulin wrote:
> A series to fix and add xe support for AuxCSS framebuffers via DPT.
> 
> Currently the auxiliary buffer data isn't mapped into the page tables at all so
> cf48bddd31de ("drm/i915/display: Disable AuxCCS framebuffers if built for Xe")
> had to disable the support.
> 
> On top of that there are missing flushes, invalidations and similar.
> 
> Tested with KDE Wayland, on Lenovo Carbon X1 ADL-P:
> 
>    [PLANE:32:plane 1A]: type=PRI
>            uapi: [FB:242] AR30 little-endian (0x30335241),0x100000000000008,2880x1800, visible=visible, src=2880.000000x1800.000000+0.000000+0.000000, dst=2880x1800+0+0, rotation=0 (0x00000001)
>            hw: [FB:242] AR30 little-endian (0x30335241),0x100000000000008,2880x1800, visible=yes, src=2880.000000x1800.000000+0.000000+0.000000, dst=2880x1800+0+0, rotation=0 (0x00000001)
> 
> Display working fine - no artefacts, no DMAR/PIPE faults.
> 
> All IGTs pass for me locally. But note that for the ones which "blit" using the
> VEBOX engine, so where media compression is the target surface, this fix for IGT
> not setting MOCS is also needed: https://patchwork.freedesktop.org/series/151928/
> 
> I have included the Test-with: tag below although I am not sure that works with
> the xe CI.
> 
> Test-with: 20250722073906.99759-1-tvrtko.ursulin at igalia.com

CI looks good - all RC flavoured tests passed, and I believe all MC 
flavoured ones would too with the IGT fix 
(20250722073906.99759-1-tvrtko.ursulin at igalia.com).

Any interest on the Intel side to review this and let it in for 
improving the ADL support?

Regards,

Tvrtko

> 
> v2:
>   * More patches added to fix kms_flip_tiling.
> 
> v3:
>   * Rebased after some cleanup patches from v2 were merged.
>   * Added people to Cc as suggested by Rodrigo.
>   * Adjusted last patch title. (Rodrigo)
>   * Apply GGTT flushing only to iomapped system memory buffers.
> 
> v4:
>   * Added patch for potentially misplaced Wa_14016712196.
>   * Fixed (hopefully) MAX_JOB_SIZE_DW on Meteorlake.
> 
> v5:
>   * Split out ring emission changes to smaller patches.
>   * Fixed MAX_JOB_SIZE_DW even more.
>   * Don't emit MI_FLUSH_DW_CCS on !BCS. This should fix Meteorlake.
> 
>   v6:
>   * Added AuxCCS invalidation to indirect context workarounds.
>   * Also added the indirect context handling and some other workarounds. They are
>     unrelated but the series depends on it.
>   * Dropped DPT pin alignment reduction since BMG appears not to be liking it for
>     some reason.
> 
> v7:
>   * Rebased on top of recent xe_fb_pin.c refactoring and also the indirect
>     context workarounds series.
> 
> v8:
>   * Rebased for bo->size removal.
>   * Corrected PIPE_CONTROL_FLUSH_L3 to bit 30. (Jose)
> 
> v9:
>   * Fixed fb remapping changes.
>   * Dropped two not required patches from the series.
>   * Fixed criteria for GGTT flushing.
>   * Limit clflush to the compression metadata area.
>   * Rebased for indirect context workarounds landing upstream.
> 
> Tvrtko Ursulin (12):
>    drm/xe/xelpg: Flush CCS when flushing caches
>    drm/xe/xelp: Quiesce memory traffic before invalidating auxccs
>    drm/xe/xelp: Support auxccs invalidation on blitter
>    drm/xe/xelp: Use MI_FLUSH_DW_CCS on auxccs platforms
>    drm/xe/xelp: Wait for AuxCCS invalidation to complete
>    drm/xe: Export xe_emit_aux_table_inv
>    drm/xe/xelp: Add AuxCCS invalidation to the indirect context
>      workarounds
>    drm/xe: Flush GGTT writes after populating DPT
>    drm/xe: Handle DPT in system memory
>    drm/xe/display: Add support for AuxCCS
>    drm/xe: Force flush system memory AuxCCS data before scan out
>    drm/i915/display: Expose AuxCCS frame buffer modifiers for Xe
> 
>   .../drm/i915/display/skl_universal_plane.c    |   6 -
>   drivers/gpu/drm/xe/display/xe_fb_pin.c        | 210 +++++++++++++++---
>   .../gpu/drm/xe/instructions/xe_gpu_commands.h |   1 +
>   .../gpu/drm/xe/instructions/xe_mi_commands.h  |   6 +
>   drivers/gpu/drm/xe/regs/xe_gt_regs.h          |   1 +
>   drivers/gpu/drm/xe/xe_bo_types.h              |  14 +-
>   drivers/gpu/drm/xe/xe_lrc.c                   |  47 ++++
>   drivers/gpu/drm/xe/xe_ring_ops.c              | 161 +++++++-------
>   drivers/gpu/drm/xe/xe_ring_ops.h              |   3 +
>   drivers/gpu/drm/xe/xe_ring_ops_types.h        |   2 +-
>   10 files changed, 334 insertions(+), 117 deletions(-)
> 



More information about the Intel-xe mailing list