From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
Cc: intel-xe@lists.freedesktop.org, kernel-dev@igalia.com
Subject: Re: [PATCH v13 08/12] drm/xe/xelp: Add AuxCCS invalidation to the indirect context workarounds
Date: Mon, 20 Oct 2025 14:31:35 +0300 [thread overview]
Message-ID: <aPYdlzzeMLg4bQuJ@intel.com> (raw)
In-Reply-To: <20251020075831.32818-9-tvrtko.ursulin@igalia.com>
On Mon, Oct 20, 2025 at 08:58:26AM +0100, Tvrtko Ursulin wrote:
> Following from the i915 reference implementation, we add the AuxCCS
> invalidation to the indirect context workarounds page.
>
> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
> ---
> drivers/gpu/drm/xe/xe_lrc.c | 38 +++++++++++++++++++++++++++++++++++++
> 1 file changed, 38 insertions(+)
>
> diff --git a/drivers/gpu/drm/xe/xe_lrc.c b/drivers/gpu/drm/xe/xe_lrc.c
> index b5083c99dd50..c77a166a2742 100644
> --- a/drivers/gpu/drm/xe/xe_lrc.c
> +++ b/drivers/gpu/drm/xe/xe_lrc.c
> @@ -27,6 +27,7 @@
> #include "xe_map.h"
> #include "xe_memirq.h"
> #include "xe_mmio.h"
> +#include "xe_ring_ops.h"
> #include "xe_sriov.h"
> #include "xe_trace_lrc.h"
> #include "xe_vm.h"
> @@ -88,6 +89,16 @@ gt_engine_needs_indirect_ctx(struct xe_gt *gt, enum xe_engine_class class)
> class, NULL))
> return true;
>
> + /* AuxCCS invalidation */
> + if (GRAPHICS_VERx100(xe) >= 1200 &&
> + GRAPHICS_VERx100(xe) <= 1210 &&
> + (class == XE_ENGINE_CLASS_RENDER ||
> + class == XE_ENGINE_CLASS_COMPUTE ||
> + class == XE_ENGINE_CLASS_COPY ||
> + class == XE_ENGINE_CLASS_VIDEO_DECODE ||
> + class == XE_ENGINE_CLASS_VIDEO_ENHANCE))
> + return true;
> +
> return false;
> }
>
> @@ -1188,6 +1199,31 @@ static ssize_t setup_invalidate_state_cache_wa(struct xe_lrc *lrc,
> return cmd - batch;
> }
>
> +static ssize_t setup_invalidate_auxccs_wa(struct xe_lrc *lrc,
> + struct xe_hw_engine *hwe,
> + u32 *batch, size_t max_len)
> +{
> + struct xe_gt *gt = lrc->gt;
> + struct xe_device *xe = gt_to_xe(gt);
> + const unsigned int class = hwe->class;
> + u32 *cmd;
> +
> + if (GRAPHICS_VERx100(xe) < 1200 || GRAPHICS_VERx100(xe) > 1210 ||
> + !(class == XE_ENGINE_CLASS_RENDER ||
> + class == XE_ENGINE_CLASS_COMPUTE ||
> + class == XE_ENGINE_CLASS_COPY ||
> + class == XE_ENGINE_CLASS_VIDEO_DECODE ||
> + class == XE_ENGINE_CLASS_VIDEO_ENHANCE))
> + return 0;
I would extract that into a function instead of repeating it twice.
> +
> + if (xe_gt_WARN_ON(gt, max_len < 8))
> + return -ENOSPC;
> +
> + cmd = xe_emit_aux_table_inv(hwe, batch);
> +
> + return cmd - batch;
> +}
> +
> struct bo_setup {
> ssize_t (*setup)(struct xe_lrc *lrc, struct xe_hw_engine *hwe,
> u32 *batch, size_t max_size);
> @@ -1320,9 +1356,11 @@ setup_indirect_ctx(struct xe_lrc *lrc, struct xe_hw_engine *hwe)
> {
> static const struct bo_setup rcs_funcs[] = {
> { .setup = setup_timestamp_wa },
> + { .setup = setup_invalidate_auxccs_wa },
> { .setup = setup_configfs_mid_ctx_restore_bb },
> };
> static const struct bo_setup xcs_funcs[] = {
> + { .setup = setup_invalidate_auxccs_wa },
> { .setup = setup_configfs_mid_ctx_restore_bb },
> };
> struct bo_setup_state state = {
> --
> 2.48.0
--
Ville Syrjälä
Intel
next prev parent reply other threads:[~2025-10-20 11:31 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-20 7:58 [PATCH v13 00/12] AuxCCS handling and render compression modifiers Tvrtko Ursulin
2025-10-20 7:58 ` [PATCH v13 01/12] drm/xe: Fix ggtt fb alignment Tvrtko Ursulin
2025-10-20 7:58 ` [PATCH v13 02/12] drm/xe/xelpg: Flush CCS when flushing caches Tvrtko Ursulin
2025-10-20 11:27 ` Ville Syrjälä
2025-10-20 7:58 ` [PATCH v13 03/12] drm/xe/xelp: Quiesce memory traffic before invalidating AuxCCS Tvrtko Ursulin
2025-10-20 7:58 ` [PATCH v13 04/12] drm/xe/xelp: Support auxccs invalidation on blitter Tvrtko Ursulin
2025-10-22 22:58 ` Matt Roper
2025-10-23 7:51 ` Tvrtko Ursulin
2025-10-23 17:10 ` Matt Roper
2025-10-24 10:50 ` Tvrtko Ursulin
2025-10-20 7:58 ` [PATCH v13 05/12] drm/xe/xelp: Use MI_FLUSH_DW_CCS on auxccs platforms Tvrtko Ursulin
2025-10-22 23:13 ` Matt Roper
2025-10-23 7:55 ` Tvrtko Ursulin
2025-10-23 17:14 ` Matt Roper
2025-10-20 7:58 ` [PATCH v13 06/12] drm/xe/xelp: Wait for AuxCCS invalidation to complete Tvrtko Ursulin
2025-10-20 7:58 ` [PATCH v13 07/12] drm/xe: Export xe_emit_aux_table_inv Tvrtko Ursulin
2025-10-20 7:58 ` [PATCH v13 08/12] drm/xe/xelp: Add AuxCCS invalidation to the indirect context workarounds Tvrtko Ursulin
2025-10-20 11:31 ` Ville Syrjälä [this message]
2025-10-20 15:13 ` Tvrtko Ursulin
2025-10-20 7:58 ` [PATCH v13 09/12] drm/xe: Flush GGTT writes after populating DPT Tvrtko Ursulin
2025-10-20 7:58 ` [PATCH v13 10/12] drm/xe: Handle DPT in system memory Tvrtko Ursulin
2025-10-20 7:58 ` [PATCH v13 11/12] drm/xe/display: Add support for AuxCCS Tvrtko Ursulin
2025-10-20 7:58 ` [PATCH v13 12/12] drm/i915/display: Expose AuxCCS frame buffer modifiers for Xe Tvrtko Ursulin
2025-10-20 11:46 ` ✗ CI.checkpatch: warning for AuxCCS handling and render compression modifiers Patchwork
2025-10-20 11:47 ` ✓ CI.KUnit: success " Patchwork
2025-10-20 12:32 ` ✓ Xe.CI.BAT: " Patchwork
2025-10-20 14:52 ` ✗ Xe.CI.Full: failure " Patchwork
2025-10-20 15:03 ` Tvrtko Ursulin
2025-10-20 16:35 ` ✗ CI.checkpatch: warning for AuxCCS handling and render compression modifiers (rev2) Patchwork
2025-10-20 16:37 ` ✓ CI.KUnit: success " Patchwork
2025-10-20 22:10 ` ✗ Xe.CI.Full: failure " Patchwork
2025-10-21 16:02 ` ✗ CI.checkpatch: warning for AuxCCS handling and render compression modifiers (rev3) Patchwork
2025-10-21 16:03 ` ✓ CI.KUnit: success " Patchwork
2025-10-21 16:47 ` ✓ Xe.CI.BAT: " Patchwork
2025-10-21 19:39 ` ✗ Xe.CI.Full: failure " Patchwork
2025-10-22 7:36 ` Tvrtko Ursulin
2025-10-22 18:01 ` ✗ CI.checkpatch: warning for AuxCCS handling and render compression modifiers (rev4) Patchwork
2025-10-22 18:02 ` ✓ CI.KUnit: success " Patchwork
2025-10-22 18:40 ` ✓ Xe.CI.BAT: " Patchwork
2025-10-22 22:10 ` ✗ Xe.CI.Full: failure " Patchwork
2025-10-23 10:54 ` ✗ CI.checkpatch: warning for AuxCCS handling and render compression modifiers (rev5) Patchwork
2025-10-23 10:56 ` ✓ CI.KUnit: success " Patchwork
2025-10-23 12:15 ` ✓ Xe.CI.BAT: " Patchwork
2025-10-23 18:58 ` ✗ Xe.CI.Full: failure " 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=aPYdlzzeMLg4bQuJ@intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=intel-xe@lists.freedesktop.org \
--cc=kernel-dev@igalia.com \
--cc=tvrtko.ursulin@igalia.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.