diff --git a/.pick_status.json b/.pick_status.json index f7c27ebbe07..9f3204cce73 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -2314,7 +2314,7 @@ "description": "anv: add missing constant cache invalidation for descriptor buffers", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c index ca89bef93f0..dcd2dfac836 100644 --- a/src/intel/vulkan/genX_cmd_buffer.c +++ b/src/intel/vulkan/genX_cmd_buffer.c @@ -3994,7 +3994,12 @@ anv_pipe_invalidate_bits_for_access_flags(struct anv_cmd_buffer *cmd_buffer, } break; case VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT: - pipe_bits |= ANV_PIPE_STATE_CACHE_INVALIDATE_BIT; + /* Invalidate the state cache (when HW reads RENDER_SURFACE_STATE & + * SAMPLER_STATE) and the constant cache (when shaders read the + * descriptor buffers) + */ + pipe_bits |= ANV_PIPE_STATE_CACHE_INVALIDATE_BIT | + ANV_PIPE_CONSTANT_CACHE_INVALIDATE_BIT; break; default: break; /* Nothing to do */