Skip to content

Commit dd01714

Browse files
committed
Merge tag 'drm-intel-fixes-2023-10-05' of git://anongit.freedesktop.org/drm/drm-intel into drm-fixes
- Fix for OpenGL CTS regression on Compute Shaders (Nirmoy) - Fix for default engines initialization (Mathias) - Fix TLB invalidation for Multi-GT devices (Chris) Signed-off-by: Dave Airlie <[email protected]> From: Rodrigo Vivi <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
2 parents 8a749fd + 1fbb6c1 commit dd01714

File tree

3 files changed

+18
-4
lines changed

3 files changed

+18
-4
lines changed

drivers/gpu/drm/i915/gem/i915_gem_pages.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ static void flush_tlb_invalidate(struct drm_i915_gem_object *obj)
198198

199199
for_each_gt(gt, i915, id) {
200200
if (!obj->mm.tlb[id])
201-
return;
201+
continue;
202202

203203
intel_gt_invalidate_tlb_full(gt, obj->mm.tlb[id]);
204204
obj->mm.tlb[id] = 0;

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

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -271,8 +271,17 @@ int gen12_emit_flush_rcs(struct i915_request *rq, u32 mode)
271271
if (GRAPHICS_VER_FULL(rq->i915) >= IP_VER(12, 70))
272272
bit_group_0 |= PIPE_CONTROL_CCS_FLUSH;
273273

274+
/*
275+
* L3 fabric flush is needed for AUX CCS invalidation
276+
* which happens as part of pipe-control so we can
277+
* ignore PIPE_CONTROL_FLUSH_L3. Also PIPE_CONTROL_FLUSH_L3
278+
* deals with Protected Memory which is not needed for
279+
* AUX CCS invalidation and lead to unwanted side effects.
280+
*/
281+
if (mode & EMIT_FLUSH)
282+
bit_group_1 |= PIPE_CONTROL_FLUSH_L3;
283+
274284
bit_group_1 |= PIPE_CONTROL_TILE_CACHE_FLUSH;
275-
bit_group_1 |= PIPE_CONTROL_FLUSH_L3;
276285
bit_group_1 |= PIPE_CONTROL_RENDER_TARGET_CACHE_FLUSH;
277286
bit_group_1 |= PIPE_CONTROL_DEPTH_CACHE_FLUSH;
278287
/* Wa_1409600907:tgl,adl-p */

drivers/gpu/drm/i915/i915_gem.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1199,6 +1199,13 @@ int i915_gem_init(struct drm_i915_private *dev_priv)
11991199
goto err_unlock;
12001200
}
12011201

1202+
/*
1203+
* Register engines early to ensure the engine list is in its final
1204+
* rb-tree form, lowering the amount of code that has to deal with
1205+
* the intermediate llist state.
1206+
*/
1207+
intel_engines_driver_register(dev_priv);
1208+
12021209
return 0;
12031210

12041211
/*
@@ -1246,8 +1253,6 @@ int i915_gem_init(struct drm_i915_private *dev_priv)
12461253
void i915_gem_driver_register(struct drm_i915_private *i915)
12471254
{
12481255
i915_gem_driver_register__shrinker(i915);
1249-
1250-
intel_engines_driver_register(i915);
12511256
}
12521257

12531258
void i915_gem_driver_unregister(struct drm_i915_private *i915)

0 commit comments

Comments
 (0)