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,
Rodrigo Vivi <rodrigo.vivi@intel.com>
Subject: Re: [PATCH v13 02/12] drm/xe/xelpg: Flush CCS when flushing caches
Date: Mon, 20 Oct 2025 14:27:18 +0300 [thread overview]
Message-ID: <aPYclqwPnyeSRIOY@intel.com> (raw)
In-Reply-To: <20251020075831.32818-3-tvrtko.ursulin@igalia.com>
On Mon, Oct 20, 2025 at 08:58:20AM +0100, Tvrtko Ursulin wrote:
> According to i915 PIPE_CONTROL0_CCS_FLUSH needs to be set when flushing
> render caches on gfx ip 12.70+.
>
> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> ---
> drivers/gpu/drm/xe/instructions/xe_gpu_commands.h | 1 +
> drivers/gpu/drm/xe/xe_ring_ops.c | 7 ++++++-
> 2 files changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/xe/instructions/xe_gpu_commands.h b/drivers/gpu/drm/xe/instructions/xe_gpu_commands.h
> index 8cfcd3360896..78c0e87dbd37 100644
> --- a/drivers/gpu/drm/xe/instructions/xe_gpu_commands.h
> +++ b/drivers/gpu/drm/xe/instructions/xe_gpu_commands.h
> @@ -43,6 +43,7 @@
>
> #define PIPE_CONTROL0_L3_READ_ONLY_CACHE_INVALIDATE BIT(10) /* gen12 */
> #define PIPE_CONTROL0_HDC_PIPELINE_FLUSH BIT(9) /* gen12 */
> +#define PIPE_CONTROL0_CCS_FLUSH BIT(13) /* MTL+ */
IIRC that thing exists already on dg2, but we don't use there for
whatever unknown reason.
It also doesn't help that bsepc calls DG2 12.7 as well, but for us
someone has invented the of 12.55 number that's never mentioned
in bspec AFAICS.
>
> #define PIPE_CONTROL_COMMAND_CACHE_INVALIDATE (1<<29)
> #define PIPE_CONTROL_TILE_CACHE_FLUSH (1<<28)
> diff --git a/drivers/gpu/drm/xe/xe_ring_ops.c b/drivers/gpu/drm/xe/xe_ring_ops.c
> index ac0c6dcffe15..15fc4010a710 100644
> --- a/drivers/gpu/drm/xe/xe_ring_ops.c
> +++ b/drivers/gpu/drm/xe/xe_ring_ops.c
> @@ -176,13 +176,18 @@ static int emit_store_imm_ppgtt_posted(u64 addr, u64 value,
> static int emit_render_cache_flush(struct xe_sched_job *job, u32 *dw, int i)
> {
> struct xe_gt *gt = job->q->gt;
> + struct xe_device *xe = gt_to_xe(gt);
> bool lacks_render = !(gt->info.engine_mask & XE_HW_ENGINE_RCS_MASK);
> + u32 bit_group_0 = PIPE_CONTROL0_HDC_PIPELINE_FLUSH;
> u32 flags;
>
> if (XE_GT_WA(gt, 14016712196))
> i = emit_pipe_control(dw, i, 0, PIPE_CONTROL_DEPTH_CACHE_FLUSH,
> LRC_PPHWSP_FLUSH_INVAL_SCRATCH_ADDR, 0);
>
> + if (GRAPHICS_VERx100(xe) >= 1270)
> + bit_group_0 |= PIPE_CONTROL0_CCS_FLUSH;
> +
> flags = (PIPE_CONTROL_CS_STALL |
> PIPE_CONTROL_TILE_CACHE_FLUSH |
> PIPE_CONTROL_RENDER_TARGET_CACHE_FLUSH |
> @@ -198,7 +203,7 @@ static int emit_render_cache_flush(struct xe_sched_job *job, u32 *dw, int i)
> else if (job->q->class == XE_ENGINE_CLASS_COMPUTE)
> flags &= ~PIPE_CONTROL_3D_ENGINE_FLAGS;
>
> - return emit_pipe_control(dw, i, PIPE_CONTROL0_HDC_PIPELINE_FLUSH, flags, 0, 0);
> + return emit_pipe_control(dw, i, bit_group_0, flags, 0, 0);
> }
>
> static int emit_pipe_control_to_ring_end(struct xe_hw_engine *hwe, u32 *dw, int i)
> --
> 2.48.0
--
Ville Syrjälä
Intel
next prev parent reply other threads:[~2025-10-20 11:27 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ä [this message]
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ä
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=aPYclqwPnyeSRIOY@intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=intel-xe@lists.freedesktop.org \
--cc=kernel-dev@igalia.com \
--cc=rodrigo.vivi@intel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox