[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