diff --git a/.pick_status.json b/.pick_status.json index 1bb591d1c9f..7f4991885d4 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -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" }, diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c index f13fda31124..8f634752a90 100644 --- a/src/amd/vulkan/radv_cmd_buffer.c +++ b/src/amd/vulkan/radv_cmd_buffer.c @@ -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)