- Fix for OpenGL CTS regression on Compute Shaders (Nirmoy)

- Fix for default engines initialization (Mathias)
 - Fix TLB invalidation for Multi-GT devices (Chris)
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCAAdFiEEbSBwaO7dZQkcLOKj+mJfZA7rE8oFAmUewo8ACgkQ+mJfZA7r
 E8qxvwf8CxGMF3kysxBaIV4ZGmG4S+3tSrUYV9r4CpeuyoFOK9XjJLHpsZw8QvYO
 qWTUPzac+PMIw0FKc/09UT4WH1JBg7z8n40Oxqt56qRUTxErqG1tcG07TIf21X6e
 h5nPxwuqkm6/l+1MgAXqWd74cZv0g9eoXiLahA6In7k/1aWuGnE6yz84qqoHUyEK
 jm1CPnCOygV2wbiMN9NUfdTz6vWsFpQ4kQ/7rf0rz1DiIf5bIro2LGbyjo6nykLM
 I7C3Hgm93wDCZSk4Y+2ALwFpFjzGu/IR+XIJ+aZU4el8uIH/03toFBu43tWysZ3P
 trm9/YpS+BL8x9DWOC54od00cRtbcg==
 =dqaA
 -----END PGP SIGNATURE-----

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 <airlied@redhat.com>

From: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/ZR7EvL+ucWI4uDTX@intel.com
This commit is contained in:
Dave Airlie 2023-10-06 10:38:06 +10:00
commit dd01714e97
3 changed files with 18 additions and 4 deletions

View file

@ -198,7 +198,7 @@ static void flush_tlb_invalidate(struct drm_i915_gem_object *obj)
for_each_gt(gt, i915, id) {
if (!obj->mm.tlb[id])
return;
continue;
intel_gt_invalidate_tlb_full(gt, obj->mm.tlb[id]);
obj->mm.tlb[id] = 0;

View file

@ -271,8 +271,17 @@ int gen12_emit_flush_rcs(struct i915_request *rq, u32 mode)
if (GRAPHICS_VER_FULL(rq->i915) >= IP_VER(12, 70))
bit_group_0 |= PIPE_CONTROL_CCS_FLUSH;
/*
* L3 fabric flush is needed for AUX CCS invalidation
* which happens as part of pipe-control so we can
* ignore PIPE_CONTROL_FLUSH_L3. Also PIPE_CONTROL_FLUSH_L3
* deals with Protected Memory which is not needed for
* AUX CCS invalidation and lead to unwanted side effects.
*/
if (mode & EMIT_FLUSH)
bit_group_1 |= PIPE_CONTROL_FLUSH_L3;
bit_group_1 |= PIPE_CONTROL_TILE_CACHE_FLUSH;
bit_group_1 |= PIPE_CONTROL_FLUSH_L3;
bit_group_1 |= PIPE_CONTROL_RENDER_TARGET_CACHE_FLUSH;
bit_group_1 |= PIPE_CONTROL_DEPTH_CACHE_FLUSH;
/* Wa_1409600907:tgl,adl-p */

View file

@ -1199,6 +1199,13 @@ int i915_gem_init(struct drm_i915_private *dev_priv)
goto err_unlock;
}
/*
* Register engines early to ensure the engine list is in its final
* rb-tree form, lowering the amount of code that has to deal with
* the intermediate llist state.
*/
intel_engines_driver_register(dev_priv);
return 0;
/*
@ -1246,8 +1253,6 @@ int i915_gem_init(struct drm_i915_private *dev_priv)
void i915_gem_driver_register(struct drm_i915_private *i915)
{
i915_gem_driver_register__shrinker(i915);
intel_engines_driver_register(i915);
}
void i915_gem_driver_unregister(struct drm_i915_private *i915)