[Intel-gfx] [PATCH] drm/i915: Add Wa_18028616096

Gustavo Sousa gustavo.sousa at intel.com
Thu Sep 21 21:01:52 UTC 2023


Quoting Shekhar Chauhan (2023-09-21 11:30:28-03:00)
>Drop UGM per set fragment threshold to 3
>
>BSpec: 54833
>Signed-off-by: Shekhar Chauhan <shekhar.chauhan at intel.com>
>---
> drivers/gpu/drm/i915/gt/intel_gt_regs.h     | 1 +
> drivers/gpu/drm/i915/gt/intel_workarounds.c | 3 +++
> 2 files changed, 4 insertions(+)
>
>diff --git a/drivers/gpu/drm/i915/gt/intel_gt_regs.h b/drivers/gpu/drm/i915/gt/intel_gt_regs.h
>index a00ff51c681d..431c575c532b 100644
>--- a/drivers/gpu/drm/i915/gt/intel_gt_regs.h
>+++ b/drivers/gpu/drm/i915/gt/intel_gt_regs.h
>@@ -1230,6 +1230,7 @@
> #define   DISABLE_D8_D16_COASLESCE                REG_BIT(30)
> #define   FORCE_1_SUB_MESSAGE_PER_FRAGMENT        REG_BIT(15)
> #define LSC_CHICKEN_BIT_0_UDW                        MCR_REG(0xe7c8 + 4)
>+#define   UGM_FRAGMENT_THRESHOLD_TO_3                REG_BIT(58 - 32)
> #define   DIS_CHAIN_2XSIMD8                        REG_BIT(55 - 32)
> #define   FORCE_SLM_FENCE_SCOPE_TO_TILE                REG_BIT(42 - 32)
> #define   FORCE_UGM_FENCE_SCOPE_TO_TILE                REG_BIT(41 - 32)
>diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c b/drivers/gpu/drm/i915/gt/intel_workarounds.c
>index 660d4f358eab..992041e3776c 100644
>--- a/drivers/gpu/drm/i915/gt/intel_workarounds.c
>+++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c
>@@ -2914,6 +2914,9 @@ general_render_compute_wa_init(struct intel_engine_cs *engine, struct i915_wa_li
>                  * Wa_22015475538:dg2
>                  */
>                 wa_mcr_write_or(wal, LSC_CHICKEN_BIT_0_UDW, DIS_CHAIN_2XSIMD8);
>+
>+                /* Wa_18028616096:dg2 */

This is not a blocker, but I would prefer to remove the ":dg2" suffix.

There was an effort to remove them from our driver[1], but it kinda of
stalled. I myself agree that we would be better off without them.

[1] https://lore.kernel.org/all/20221222082557.1364711-1-lucas.demarchi@intel.com

>+                wa_mcr_write_or(wal, LSC_CHICKEN_BIT_0_UDW, UGM_FRAGMENT_THRESHOLD_TO_3);

This workaround applies to (i) DG2 G10 from stepping C0 to forever and
(ii) any stepping of DG2 G12. Here you are applying this workaround to
any variant of DG2.

It should be moved out of this "if" statement and rather be guarded by
something like:

	if ((IS_DG2_G10(i915) && IS_GRAPHICS_STEP(i915, STEP_C0, STEP_FOREVER)) ||
	    IS_DG2_G12(i915))

Note that we are there is still a pending decision for G11, so we may
need to update this in the future.

--
Gustavo Sousa

>         }
> 
>         if (IS_DG2_G11(i915)) {
>-- 
>2.34.1
>


More information about the Intel-gfx mailing list