From fb336d6a1069e0aeb0fdd531dd8b76d4b0a0cc91 Mon Sep 17 00:00:00 2001 From: CamilleLaVey Date: Tue, 17 Feb 2026 04:02:29 -0400 Subject: [PATCH] [vulkan] Indirect draw for dstStageMask --- src/video_core/renderer_vulkan/vk_buffer_cache.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/video_core/renderer_vulkan/vk_buffer_cache.cpp b/src/video_core/renderer_vulkan/vk_buffer_cache.cpp index 7dd7588293..d0046dd3b0 100644 --- a/src/video_core/renderer_vulkan/vk_buffer_cache.cpp +++ b/src/video_core/renderer_vulkan/vk_buffer_cache.cpp @@ -450,6 +450,7 @@ void BufferCacheRuntime::CopyBuffer(VkBuffer dst_buffer, VkBuffer src_buffer, if (barrier) { // Buffer reads can go to vertex input, shaders, or compute const VkPipelineStageFlags dst_stages = + VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT | VK_PIPELINE_STAGE_VERTEX_INPUT_BIT | VK_PIPELINE_STAGE_VERTEX_SHADER_BIT | VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT | @@ -494,6 +495,7 @@ void BufferCacheRuntime::PostCopyBarrier() { scheduler.RequestOutsideRenderPassOperationContext(); scheduler.Record([](vk::CommandBuffer cmdbuf) { const VkPipelineStageFlags dst_stages = + VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT | VK_PIPELINE_STAGE_VERTEX_INPUT_BIT | VK_PIPELINE_STAGE_VERTEX_SHADER_BIT | VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT | @@ -535,6 +537,7 @@ void BufferCacheRuntime::ClearBuffer(VkBuffer dest_buffer, u32 offset, size_t si cmdbuf.FillBuffer(dest_buffer, offset, size, value); // Buffer reads can go to vertex input, shaders, or compute const VkPipelineStageFlags dst_stages_clear = + VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT | VK_PIPELINE_STAGE_VERTEX_INPUT_BIT | VK_PIPELINE_STAGE_VERTEX_SHADER_BIT | VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT |