Skip to content

Commit 77a1645

Browse files
sberbzAndi Shyti
authored andcommitted
drm/i915/gt: Relocate Gen7 context-specific workarounds
CACHE_MODE_1 and CACHE_MODE_0 register should be saved and restored as part of the context, not during engine reset. Move the related workarounds (RC_OP_FLUSH_ENABLE, PIXEL_SUBSPAN_COLLECT_OPT_DISABLE) from rcs_engine_wa_init() to gen7_ctx_workarounds_init() for Gen7 platforms. This ensures the WA is applied during context initialisation. BSPEC: 11322, 11323 Signed-off-by: Sebastian Brzezinka <[email protected]> Reviewed-by: Andi Shyti <[email protected]> Reviewed-by: Krzysztof Karas <[email protected]> Signed-off-by: Andi Shyti <[email protected]> Link: https://lore.kernel.org/r/06cf152803ab0050e09c521ac2fc3637549860b3.1754902406.git.sebastian.brzezinka@intel.com
1 parent c9932f0 commit 77a1645

File tree

1 file changed

+11
-12
lines changed

1 file changed

+11
-12
lines changed

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

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -343,6 +343,17 @@ static void gen7_ctx_workarounds_init(struct intel_engine_cs *engine,
343343
struct i915_wa_list *wal)
344344
{
345345
wa_masked_en(wal, INSTPM, INSTPM_FORCE_ORDERING);
346+
/* WaDisable_RenderCache_OperationalFlush:ivb,vlv,hsw */
347+
wa_masked_dis(wal, CACHE_MODE_0_GEN7, RC_OP_FLUSH_ENABLE);
348+
349+
/*
350+
* BSpec says this must be set, even though
351+
* WaDisable4x2SubspanOptimization:ivb,hsw
352+
* WaDisable4x2SubspanOptimization isn't listed for VLV.
353+
*/
354+
wa_masked_en(wal,
355+
CACHE_MODE_1,
356+
PIXEL_SUBSPAN_COLLECT_OPT_DISABLE);
346357
}
347358

348359
static void gen8_ctx_workarounds_init(struct intel_engine_cs *engine,
@@ -2567,18 +2578,6 @@ rcs_engine_wa_init(struct intel_engine_cs *engine, struct i915_wa_list *wal)
25672578
RING_MODE_GEN7(RENDER_RING_BASE),
25682579
GFX_TLB_INVALIDATE_EXPLICIT | GFX_REPLAY_MODE);
25692580

2570-
/* WaDisable_RenderCache_OperationalFlush:ivb,vlv,hsw */
2571-
wa_masked_dis(wal, CACHE_MODE_0_GEN7, RC_OP_FLUSH_ENABLE);
2572-
2573-
/*
2574-
* BSpec says this must be set, even though
2575-
* WaDisable4x2SubspanOptimization:ivb,hsw
2576-
* WaDisable4x2SubspanOptimization isn't listed for VLV.
2577-
*/
2578-
wa_masked_en(wal,
2579-
CACHE_MODE_1,
2580-
PIXEL_SUBSPAN_COLLECT_OPT_DISABLE);
2581-
25822581
/*
25832582
* BSpec recommends 8x4 when MSAA is used,
25842583
* however in practice 16x4 seems fastest.

0 commit comments

Comments
 (0)