From 4a49e2bb31d83ca5c4d20ae9a828daecf99a9dd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20Miko=C5=82ajczyk?= Date: Tue, 27 May 2025 18:03:38 +0100 Subject: [PATCH] Include a barrier for conditional rendering read --- src/video_core/renderer_vulkan/vk_rasterizer.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/video_core/renderer_vulkan/vk_rasterizer.cpp b/src/video_core/renderer_vulkan/vk_rasterizer.cpp index e6ca0d546..63cbbb2b5 100644 --- a/src/video_core/renderer_vulkan/vk_rasterizer.cpp +++ b/src/video_core/renderer_vulkan/vk_rasterizer.cpp @@ -1309,8 +1309,17 @@ void Rasterizer::StartPredication(VAddr addr, bool draw_if_visible, bool wait_fo .offset = index * sizeof(u32), .size = sizeof(u32), }; + + const vk::MemoryBarrier2 ib_barrier{ + .srcStageMask = vk::PipelineStageFlagBits2::eCopy, + .srcAccessMask = vk::AccessFlagBits2::eTransferWrite, + .dstStageMask = vk::PipelineStageFlagBits2::eConditionalRenderingEXT, + .dstAccessMask = vk::AccessFlagBits2::eConditionalRenderingReadEXT, + }; cmdbuf.pipelineBarrier2(vk::DependencyInfo{ .dependencyFlags = vk::DependencyFlagBits::eByRegion, + .memoryBarrierCount = 1, + .pMemoryBarriers = &ib_barrier, .bufferMemoryBarrierCount = 1, .pBufferMemoryBarriers = &pre_barrier, });