iris: invalidate L3 read only cache when VF cache is invalidated
When enabling the caching of index,vertex data in the L3 RO Cache
(L3BypassDisable), we need to use L3ReadOnlyCacheInvalidationEnable
to invalidate cache when buffer is modified by CPU/GPU.
Ref: bspec 46314
Fixes: ed8f2c4cbe
("iris: Cache VB/IB in L3$ for Gen12")
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14815>
This commit is contained in:
parent
7a6ea04795
commit
562f7eef5b
|
@ -8057,6 +8057,13 @@ iris_emit_raw_pipe_control(struct iris_batch *batch,
|
|||
pc.DepthCacheFlushEnable = flags & PIPE_CONTROL_DEPTH_CACHE_FLUSH;
|
||||
pc.StateCacheInvalidationEnable =
|
||||
flags & PIPE_CONTROL_STATE_CACHE_INVALIDATE;
|
||||
#if GFX_VER >= 12
|
||||
/* Invalidates the L3 cache part in which index & vertex data is loaded
|
||||
* when VERTEX_BUFFER_STATE::L3BypassDisable is set.
|
||||
*/
|
||||
pc.L3ReadOnlyCacheInvalidationEnable =
|
||||
flags & PIPE_CONTROL_VF_CACHE_INVALIDATE;
|
||||
#endif
|
||||
pc.VFCacheInvalidationEnable = flags & PIPE_CONTROL_VF_CACHE_INVALIDATE;
|
||||
pc.ConstantCacheInvalidationEnable =
|
||||
flags & PIPE_CONTROL_CONST_CACHE_INVALIDATE;
|
||||
|
|
Loading…
Reference in New Issue