Skip to content

Commit 5f12c8d

Browse files
author
Radhakrishna Sripada
committed
drm/i915/mtl: Add MTL performance tuning changes
MTL reuses the tuning parameters for DG2. Extend the dg2 performance tuning parameters to MTL. v2: Add DRAW_WATERMARK tuning parameter. v3: Limit DRAW_WATERMARK tuning to non A0 step. v4: Reorder platform checks. Restrict Blend fill caching optimization to Render GT. v5: Move mtl tuning params to its own function Bspec: 68331 Cc: Haridhar Kalvala <haridhar.kalvala@intel.com> Cc: Matt Roper <matthew.d.roper@intel.com> Reviewed-by: Gustavo Sousa <gustavo.sousa@intel.com> Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20230517233111.297542-1-radhakrishna.sripada@intel.com
1 parent 25e7976 commit 5f12c8d

1 file changed

Lines changed: 22 additions & 1 deletion

File tree

drivers/gpu/drm/i915/gt/intel_workarounds.c

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -812,11 +812,25 @@ static void dg2_ctx_workarounds_init(struct intel_engine_cs *engine,
812812
wa_masked_en(wal, CACHE_MODE_1, MSAA_OPTIMIZATION_REDUC_DISABLE);
813813
}
814814

815+
static void mtl_ctx_gt_tuning_init(struct intel_engine_cs *engine,
816+
struct i915_wa_list *wal)
817+
{
818+
struct drm_i915_private *i915 = engine->i915;
819+
820+
dg2_ctx_gt_tuning_init(engine, wal);
821+
822+
if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_B0, STEP_FOREVER) ||
823+
IS_MTL_GRAPHICS_STEP(i915, P, STEP_B0, STEP_FOREVER))
824+
wa_add(wal, DRAW_WATERMARK, VERT_WM_VAL, 0x3FF, 0, false);
825+
}
826+
815827
static void mtl_ctx_workarounds_init(struct intel_engine_cs *engine,
816828
struct i915_wa_list *wal)
817829
{
818830
struct drm_i915_private *i915 = engine->i915;
819831

832+
mtl_ctx_gt_tuning_init(engine, wal);
833+
820834
if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0) ||
821835
IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0)) {
822836
/* Wa_14014947963 */
@@ -1748,6 +1762,13 @@ xelpmp_gt_workarounds_init(struct intel_gt *gt, struct i915_wa_list *wal)
17481762
*/
17491763
static void gt_tuning_settings(struct intel_gt *gt, struct i915_wa_list *wal)
17501764
{
1765+
if (IS_METEORLAKE(gt->i915)) {
1766+
if (gt->type != GT_MEDIA)
1767+
wa_mcr_write_or(wal, XEHP_L3SCQREG7, BLEND_FILL_CACHING_OPT_DIS);
1768+
1769+
wa_mcr_write_or(wal, XEHP_SQCM, EN_32B_ACCESS);
1770+
}
1771+
17511772
if (IS_PONTEVECCHIO(gt->i915)) {
17521773
wa_mcr_write(wal, XEHPC_L3SCRUB,
17531774
SCRUB_CL_DWNGRADE_SHARED | SCRUB_RATE_4B_PER_CLK);
@@ -2944,7 +2965,7 @@ static void
29442965
add_render_compute_tuning_settings(struct drm_i915_private *i915,
29452966
struct i915_wa_list *wal)
29462967
{
2947-
if (IS_DG2(i915))
2968+
if (IS_METEORLAKE(i915) || IS_DG2(i915))
29482969
wa_mcr_write_clr_set(wal, RT_CTRL, STACKID_CTRL, STACKID_CTRL_512);
29492970

29502971
/*

0 commit comments

Comments
 (0)