Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
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
> 

  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