[PATCH v3 2/3] drm/xe/xe2_hpg: Add set of workarounds
Matt Roper
matthew.d.roper at intel.com
Thu Jun 5 20:43:39 UTC 2025
On Fri, Jun 06, 2025 at 12:38:03AM +0530, Dnyaneshwar Bhadane wrote:
> From: Shekhar Chauhan <shekhar.chauhan at intel.com>
>
> Add set of workarounds for xe2_hpg.
>
> -v2: Fix xe2_hpg GMD version for some workarounds.
> -v3: Removed extra Workaround (Matt Roper)
>
> Signed-off-by: Shekhar Chauhan <shekhar.chauhan at intel.com>
> Signed-off-by: Dnyaneshwar Bhadane <dnyaneshwar.bhadane at intel.com>
Reviewed-by: Matt Roper <matthew.d.roper at intel.com>
> ---
> drivers/gpu/drm/xe/xe_wa.c | 46 ++++++++++++++++++------------
> drivers/gpu/drm/xe/xe_wa_oob.rules | 4 +--
> 2 files changed, 29 insertions(+), 21 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_wa.c b/drivers/gpu/drm/xe/xe_wa.c
> index 67196baa4249..4a76de391abb 100644
> --- a/drivers/gpu/drm/xe/xe_wa.c
> +++ b/drivers/gpu/drm/xe/xe_wa.c
> @@ -503,10 +503,6 @@ static const struct xe_rtp_entry_sr engine_was[] = {
> XE_RTP_RULES(GRAPHICS_VERSION(2004), FUNC(xe_rtp_match_first_render_or_compute)),
> XE_RTP_ACTIONS(SET(LSC_CHICKEN_BIT_0_UDW, ENABLE_SMP_LD_RENDER_SURFACE_CONTROL))
> },
> - { XE_RTP_NAME("16018737384"),
> - XE_RTP_RULES(GRAPHICS_VERSION(2004), FUNC(xe_rtp_match_first_render_or_compute)),
> - XE_RTP_ACTIONS(SET(ROW_CHICKEN, EARLY_EOT_DIS))
> - },
> /*
> * These two workarounds are the same, just applying to different
> * engines. Although Wa_18032095049 (for the RCS) isn't required on
> @@ -533,31 +529,38 @@ static const struct xe_rtp_entry_sr engine_was[] = {
> /* Xe2_HPG */
>
> { XE_RTP_NAME("16018712365"),
> - XE_RTP_RULES(GRAPHICS_VERSION(2001), FUNC(xe_rtp_match_first_render_or_compute)),
> + XE_RTP_RULES(GRAPHICS_VERSION_RANGE(2001, 2002),
> + FUNC(xe_rtp_match_first_render_or_compute)),
> XE_RTP_ACTIONS(SET(LSC_CHICKEN_BIT_0_UDW, XE2_ALLOC_DPA_STARVE_FIX_DIS))
> },
> { XE_RTP_NAME("16018737384"),
> - XE_RTP_RULES(GRAPHICS_VERSION(2001), FUNC(xe_rtp_match_first_render_or_compute)),
> + XE_RTP_RULES(GRAPHICS_VERSION_RANGE(2001, XE_RTP_END_VERSION_UNDEFINED),
> + FUNC(xe_rtp_match_first_render_or_compute)),
> XE_RTP_ACTIONS(SET(ROW_CHICKEN, EARLY_EOT_DIS))
> },
> { XE_RTP_NAME("14019988906"),
> - XE_RTP_RULES(GRAPHICS_VERSION(2001), FUNC(xe_rtp_match_first_render_or_compute)),
> + XE_RTP_RULES(GRAPHICS_VERSION_RANGE(2001, 2002),
> + FUNC(xe_rtp_match_first_render_or_compute)),
> XE_RTP_ACTIONS(SET(XEHP_PSS_CHICKEN, FLSH_IGNORES_PSD))
> },
> { XE_RTP_NAME("14019877138"),
> - XE_RTP_RULES(GRAPHICS_VERSION(2001), FUNC(xe_rtp_match_first_render_or_compute)),
> + XE_RTP_RULES(GRAPHICS_VERSION_RANGE(2001, 2002),
> + FUNC(xe_rtp_match_first_render_or_compute)),
> XE_RTP_ACTIONS(SET(XEHP_PSS_CHICKEN, FD_END_COLLECT))
> },
> { XE_RTP_NAME("14020338487"),
> - XE_RTP_RULES(GRAPHICS_VERSION(2001), FUNC(xe_rtp_match_first_render_or_compute)),
> + XE_RTP_RULES(GRAPHICS_VERSION_RANGE(2001, 2002),
> + FUNC(xe_rtp_match_first_render_or_compute)),
> XE_RTP_ACTIONS(SET(ROW_CHICKEN3, XE2_EUPEND_CHK_FLUSH_DIS))
> },
> { XE_RTP_NAME("18032247524"),
> - XE_RTP_RULES(GRAPHICS_VERSION(2001), FUNC(xe_rtp_match_first_render_or_compute)),
> + XE_RTP_RULES(GRAPHICS_VERSION_RANGE(2001, 2002),
> + FUNC(xe_rtp_match_first_render_or_compute)),
> XE_RTP_ACTIONS(SET(LSC_CHICKEN_BIT_0, SEQUENTIAL_ACCESS_UPGRADE_DISABLE))
> },
> { XE_RTP_NAME("14018471104"),
> - XE_RTP_RULES(GRAPHICS_VERSION(2001), FUNC(xe_rtp_match_first_render_or_compute)),
> + XE_RTP_RULES(GRAPHICS_VERSION_RANGE(2001, 2002),
> + FUNC(xe_rtp_match_first_render_or_compute)),
> XE_RTP_ACTIONS(SET(LSC_CHICKEN_BIT_0_UDW, ENABLE_SMP_LD_RENDER_SURFACE_CONTROL))
> },
> /*
> @@ -566,7 +569,7 @@ static const struct xe_rtp_entry_sr engine_was[] = {
> * apply this to all engines for simplicity.
> */
> { XE_RTP_NAME("16021639441"),
> - XE_RTP_RULES(GRAPHICS_VERSION(2001)),
> + XE_RTP_RULES(GRAPHICS_VERSION_RANGE(2001, 2002)),
> XE_RTP_ACTIONS(SET(CSFE_CHICKEN1(0),
> GHWSP_CSB_REPORT_DIS |
> PPHWSP_CSB_AND_TIMESTAMP_REPORT_DIS,
> @@ -578,11 +581,12 @@ static const struct xe_rtp_entry_sr engine_was[] = {
> XE_RTP_ACTIONS(SET(LSC_CHICKEN_BIT_0, WR_REQ_CHAINING_DIS))
> },
> { XE_RTP_NAME("14021402888"),
> - XE_RTP_RULES(GRAPHICS_VERSION(2001), ENGINE_CLASS(RENDER)),
> + XE_RTP_RULES(GRAPHICS_VERSION_RANGE(2001, 2002), ENGINE_CLASS(RENDER)),
> XE_RTP_ACTIONS(SET(HALF_SLICE_CHICKEN7, CLEAR_OPTIMIZATION_DISABLE))
> },
> - { XE_RTP_NAME("14021821874"),
> - XE_RTP_RULES(GRAPHICS_VERSION(2001), FUNC(xe_rtp_match_first_render_or_compute)),
> + { XE_RTP_NAME("14021821874, 14022954250"),
> + XE_RTP_RULES(GRAPHICS_VERSION_RANGE(2001, 2002),
> + FUNC(xe_rtp_match_first_render_or_compute)),
> XE_RTP_ACTIONS(SET(TDL_TSL_CHICKEN, STK_ID_RESTRICT))
> },
>
> @@ -774,7 +778,7 @@ static const struct xe_rtp_entry_sr lrc_was[] = {
> XE_RTP_ACTIONS(SET(INSTPM(RENDER_RING_BASE), ENABLE_SEMAPHORE_POLL_BIT))
> },
> { XE_RTP_NAME("18033852989"),
> - XE_RTP_RULES(GRAPHICS_VERSION_RANGE(2001, 2004), ENGINE_CLASS(RENDER)),
> + XE_RTP_RULES(GRAPHICS_VERSION(2004), ENGINE_CLASS(RENDER)),
> XE_RTP_ACTIONS(SET(COMMON_SLICE_CHICKEN1, DISABLE_BOTTOM_CLIP_RECTANGLE_TEST))
> },
> { XE_RTP_NAME("14021567978"),
> @@ -807,7 +811,7 @@ static const struct xe_rtp_entry_sr lrc_was[] = {
> XE_RTP_ACTIONS(SET(CHICKEN_RASTER_1, DIS_SF_ROUND_NEAREST_EVEN))
> },
> { XE_RTP_NAME("14019386621"),
> - XE_RTP_RULES(GRAPHICS_VERSION(2001), ENGINE_CLASS(RENDER)),
> + XE_RTP_RULES(GRAPHICS_VERSION_RANGE(2001, 2002), ENGINE_CLASS(RENDER)),
> XE_RTP_ACTIONS(SET(VF_SCRATCHPAD, XE2_VFG_TED_CREDIT_INTERFACE_DISABLE))
> },
> { XE_RTP_NAME("14020756599"),
> @@ -824,13 +828,17 @@ static const struct xe_rtp_entry_sr lrc_was[] = {
> DIS_AUTOSTRIP))
> },
> { XE_RTP_NAME("15016589081"),
> - XE_RTP_RULES(GRAPHICS_VERSION(2001), ENGINE_CLASS(RENDER)),
> + XE_RTP_RULES(GRAPHICS_VERSION_RANGE(2001, 2002), ENGINE_CLASS(RENDER)),
> XE_RTP_ACTIONS(SET(CHICKEN_RASTER_1, DIS_CLIP_NEGATIVE_BOUNDING_BOX))
> },
> { XE_RTP_NAME("22021007897"),
> - XE_RTP_RULES(GRAPHICS_VERSION(2001), ENGINE_CLASS(RENDER)),
> + XE_RTP_RULES(GRAPHICS_VERSION_RANGE(2001, 2002), ENGINE_CLASS(RENDER)),
> XE_RTP_ACTIONS(SET(COMMON_SLICE_CHICKEN4, SBE_PUSH_CONSTANT_BEHIND_FIX_ENABLE))
> },
> + { XE_RTP_NAME("18033852989"),
> + XE_RTP_RULES(GRAPHICS_VERSION(2001), ENGINE_CLASS(RENDER)),
> + XE_RTP_ACTIONS(SET(COMMON_SLICE_CHICKEN1, DISABLE_BOTTOM_CLIP_RECTANGLE_TEST))
> + },
>
> /* Xe3_LPG */
> { XE_RTP_NAME("14021490052"),
> diff --git a/drivers/gpu/drm/xe/xe_wa_oob.rules b/drivers/gpu/drm/xe/xe_wa_oob.rules
> index 9efc5accd43d..425cb401c276 100644
> --- a/drivers/gpu/drm/xe/xe_wa_oob.rules
> +++ b/drivers/gpu/drm/xe/xe_wa_oob.rules
> @@ -30,10 +30,10 @@
> GRAPHICS_VERSION(2004)
> 13011645652 GRAPHICS_VERSION(2004)
> GRAPHICS_VERSION(3001)
> -14022293748 GRAPHICS_VERSION(2001)
> +14022293748 GRAPHICS_VERSION_RANGE(2001, 2002)
> GRAPHICS_VERSION(2004)
> GRAPHICS_VERSION_RANGE(3000, 3001)
> -22019794406 GRAPHICS_VERSION(2001)
> +22019794406 GRAPHICS_VERSION_RANGE(2001, 2002)
> GRAPHICS_VERSION(2004)
> GRAPHICS_VERSION_RANGE(3000, 3001)
> 22019338487 MEDIA_VERSION(2000)
> --
> 2.34.1
>
>
--
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation
More information about the Intel-xe
mailing list