From c43d94a8536c44dcc39a11e85fc247c1d9a7fcc6 Mon Sep 17 00:00:00 2001 From: Faith Ekstrand Date: Sun, 11 Aug 2024 09:47:19 -0500 Subject: [PATCH] nvk: Invalidate MME data for descriptor buffers Our cbuf optimization may pull UBO descriptors straight out of client-owned descriptor buffers which may have been written from a compute shader or similar. We need to stall the command processor if we ever get a barrier from anything to DESCRIPTOR_BUFFER_READ_BIT. Fixes: c5b752cea0c9 ("nvk: Advertise VK_EXT_descriptor_buffer") Part-of: --- src/nouveau/vulkan/nvk_cmd_buffer.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/nouveau/vulkan/nvk_cmd_buffer.c b/src/nouveau/vulkan/nvk_cmd_buffer.c index 417e1ac2583..ca2e453bebb 100644 --- a/src/nouveau/vulkan/nvk_cmd_buffer.c +++ b/src/nouveau/vulkan/nvk_cmd_buffer.c @@ -424,11 +424,12 @@ nvk_barrier_invalidates(VkPipelineStageFlags2 stages, if (access & (VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT | VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT | - VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT)) + VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT | + VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT)) barriers |= NVK_BARRIER_INVALIDATE_MME_DATA; if (access & (VK_ACCESS_2_UNIFORM_READ_BIT | - VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT)) + VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT)) barriers |= NVK_BARRIER_INVALIDATE_SHADER_DATA | NVK_BARRIER_INVALIDATE_CONSTANT;