radv: Fix missing VK_ACCESS_2_SHADER_SAMPLED_READ_BIT.

Cannot be used for SSBO, so ignore SCACHE invalidation.

Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
Fixes: 8df17163c7 ("radv: implement vkCmdWaitEvents2KHR")
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21271>
(cherry picked from commit 7efabfbbe4)
This commit is contained in:
Hans-Kristian Arntzen 2023-02-12 16:02:26 +01:00 committed by Eric Engestrom
parent cb48348f61
commit 57edba1586
2 changed files with 4 additions and 3 deletions

View file

@ -958,7 +958,7 @@
"description": "radv: Fix missing VK_ACCESS_2_SHADER_SAMPLED_READ_BIT.",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "8df17163c7864df8abd447374b4272a231233301"
},

View file

@ -4691,12 +4691,13 @@ radv_dst_access_flush(struct radv_cmd_buffer *cmd_buffer, VkAccessFlags2 dst_fla
case VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR:
case VK_ACCESS_2_SHADER_READ_BIT:
case VK_ACCESS_2_SHADER_STORAGE_READ_BIT:
flush_bits |= RADV_CMD_FLAG_INV_VCACHE;
/* Unlike LLVM, ACO uses SMEM for SSBOs and we have to
* invalidate the scalar cache. */
if (!cmd_buffer->device->physical_device->use_llvm && !image)
flush_bits |= RADV_CMD_FLAG_INV_SCACHE;
FALLTHROUGH;
case VK_ACCESS_2_SHADER_SAMPLED_READ_BIT:
flush_bits |= RADV_CMD_FLAG_INV_VCACHE;
if (has_CB_meta || has_DB_meta)
flush_bits |= RADV_CMD_FLAG_INV_L2_METADATA;
if (!image_is_coherent)