From: Rodrigo Vivi <rodrigo.vivi@intel.com>
To: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
Cc: <intel-xe@lists.freedesktop.org>, <kernel-dev@igalia.com>,
Uma Shankar <uma.shankar@intel.com>
Subject: Re: [PATCH v25 00/12] AuxCCS handling and render compression modifiers
Date: Tue, 24 Mar 2026 09:31:32 -0400 [thread overview]
Message-ID: <acKSNLF8z3Q7mpmY@intel.com> (raw)
In-Reply-To: <20260324084018.20353-1-tvrtko.ursulin@igalia.com>
On Tue, Mar 24, 2026 at 08:40:06AM +0000, Tvrtko Ursulin wrote:
> A series to add support for compressed surface scanout under xe with
> Alderlake-P.
>
> 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.
>
> 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.
>
> v10:
> * Rebase for XE_GT_WA().
>
> v11:
> * Do not use stolen for DPT on IGFX + AuxCCS.
>
> v12:
> * Rebased for some ringbuf and LRC code changes.
>
> v13:
> * Rebased for various upstream changes.
> * Dropped clflush and stolen avoidance patches after merging IGT MOCS 61 usage.
>
> v14:
> * MMIO 0x4248 and MI_FLUSH_DW_CCS are MTL+. (Matt)
> * Consolidate engine feature checks. (Ville)
> * Brought back the patch to put DPT tables in system memory for 100% CI pass
> rate. It looks like MOCS 61 is not enough to avoid sporadic pipecrc
> mismatches.
>
> v15:
> * Limited to enabling on Alderlake-P only. (Dropped all Meteorlake patches.)
> * Dropped unrelated GGTT alignment fix. (Sent standalone.)
> * Use display parent interface for probing AuxCCS driver support.
>
> v16:
> * Use write-combine for DPT in stolen memory. (Ville)
> * Dropped clflush patches under assumption pre-production ADL machine were the
> reason for sporadic pipecrc failures.
>
> v17:
> * Mechanical rebase for upstream conflicts.
>
> v18:
> * Added a patch to rename XE_BO_FLAG_SCANOUT to XE_BO_FLAG_FORCE_WC. (Rodrigo)
> * Instead of exporting a helper function for emitting the aux invalidation
> into the ring, add it to the ring ops vfunc table. (Matthew)
>
> v19:
> * Tweaked comments and removed some stray hunks from v17.
>
> v20:
> * Include <linux/types.h> for u32.
>
> v21:
> * Forward declare struct xe_gt to fix standalone headers test.
>
> v22:
> * Split up "drm/xe/display: Add support for AuxCCS" into four patches for
> easier review.
>
> v23:
> * Fixed rebase error made in v22 when splitting up the patches.
>
> v24:
> * Fixed flag confusion in "drm/xe: Rename XE_BO_FLAG_SCANOUT to XE_BO_FLAG_FORCE_WC".
> * Applied r-b's.
>
> v25:
> * Rebased for upstream conflict and tidied some checkpatch warnings added in
> the patch split.
Pushed to drm-xe-next. Thank you so much for the work and patience.
>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
>
> Tvrtko Ursulin (12):
> drm/xe: Rename XE_BO_FLAG_SCANOUT to XE_BO_FLAG_FORCE_WC
> drm/xe: Use write-combine mapping when populating DPT
> drm/xe/xelpg: Limit AuxCCS ring buffer programming to Alderlake
> drm/xe/xelp: Quiesce memory traffic before invalidating AuxCCS
> drm/xe/xelp: Wait for AuxCCS invalidation to complete
> drm/xe: Move aux table invalidation to ring ops
> drm/xe/xelp: Add AuxCCS invalidation to the indirect context
> workarounds
> drm/xe/display: Move remapped plane loop out of __xe_pin_fb_vma_dpt
> drm/xe/display: Change write_dpt_remapped_tiled function signature
> drm/xe/display: Respect remapped plane alignment
> drm/xe/display: Add support for AuxCCS
> drm/xe/xelp: Expose AuxCCS frame buffer modifiers on Alderlake-P
>
> drivers/gpu/drm/xe/display/intel_fbdev_fb.c | 12 +-
> drivers/gpu/drm/xe/display/xe_display.c | 8 ++
> drivers/gpu/drm/xe/display/xe_display_bo.c | 6 +-
> drivers/gpu/drm/xe/display/xe_dsb_buffer.c | 4 +-
> drivers/gpu/drm/xe/display/xe_fb_pin.c | 116 +++++++++++++-----
> drivers/gpu/drm/xe/display/xe_initial_plane.c | 2 +-
> .../gpu/drm/xe/instructions/xe_mi_commands.h | 6 +
> drivers/gpu/drm/xe/xe_bo.c | 17 +--
> drivers/gpu/drm/xe/xe_bo.h | 2 +-
> drivers/gpu/drm/xe/xe_lrc.c | 23 ++++
> drivers/gpu/drm/xe/xe_ring_ops.c | 106 ++++++++++++----
> drivers/gpu/drm/xe/xe_ring_ops_types.h | 8 +-
> 12 files changed, 238 insertions(+), 72 deletions(-)
>
> --
> 2.52.0
>
next prev parent reply other threads:[~2026-03-24 13:31 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-24 8:40 [PATCH v25 00/12] AuxCCS handling and render compression modifiers Tvrtko Ursulin
2026-03-24 8:40 ` [PATCH v25 01/12] drm/xe: Rename XE_BO_FLAG_SCANOUT to XE_BO_FLAG_FORCE_WC Tvrtko Ursulin
2026-03-24 8:40 ` [PATCH v25 02/12] drm/xe: Use write-combine mapping when populating DPT Tvrtko Ursulin
2026-03-24 8:40 ` [PATCH v25 03/12] drm/xe/xelpg: Limit AuxCCS ring buffer programming to Alderlake Tvrtko Ursulin
2026-03-24 8:40 ` [PATCH v25 04/12] drm/xe/xelp: Quiesce memory traffic before invalidating AuxCCS Tvrtko Ursulin
2026-03-24 8:40 ` [PATCH v25 05/12] drm/xe/xelp: Wait for AuxCCS invalidation to complete Tvrtko Ursulin
2026-03-24 8:40 ` [PATCH v25 06/12] drm/xe: Move aux table invalidation to ring ops Tvrtko Ursulin
2026-03-24 8:40 ` [PATCH v25 07/12] drm/xe/xelp: Add AuxCCS invalidation to the indirect context workarounds Tvrtko Ursulin
2026-03-24 8:40 ` [PATCH v25 08/12] drm/xe/display: Move remapped plane loop out of __xe_pin_fb_vma_dpt Tvrtko Ursulin
2026-03-24 8:40 ` [PATCH v25 09/12] drm/xe/display: Change write_dpt_remapped_tiled function signature Tvrtko Ursulin
2026-03-24 8:40 ` [PATCH v25 10/12] drm/xe/display: Respect remapped plane alignment Tvrtko Ursulin
2026-03-24 8:40 ` [PATCH v25 11/12] drm/xe/display: Add support for AuxCCS Tvrtko Ursulin
2026-03-24 8:40 ` [PATCH v25 12/12] drm/xe/xelp: Expose AuxCCS frame buffer modifiers on Alderlake-P Tvrtko Ursulin
2026-03-24 9:34 ` ✗ CI.checkpatch: warning for AuxCCS handling and render compression modifiers Patchwork
2026-03-24 9:35 ` ✓ CI.KUnit: success " Patchwork
2026-03-24 10:19 ` ✓ Xe.CI.BAT: " Patchwork
2026-03-24 13:31 ` Rodrigo Vivi [this message]
2026-03-24 18:53 ` [PATCH v25 00/12] " Tvrtko Ursulin
2026-03-24 18:53 ` ✗ Xe.CI.FULL: failure for " Patchwork
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=acKSNLF8z3Q7mpmY@intel.com \
--to=rodrigo.vivi@intel.com \
--cc=intel-xe@lists.freedesktop.org \
--cc=kernel-dev@igalia.com \
--cc=tvrtko.ursulin@igalia.com \
--cc=uma.shankar@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox