From 31cbe6e3eb38e720bb9f818a340d7dd248e3da62 Mon Sep 17 00:00:00 2001 From: Ribbit Date: Mon, 13 Oct 2025 19:34:02 -0700 Subject: [PATCH] [vk] Tighten Queue & Wait Stages --- src/video_core/renderer_vulkan/vk_master_semaphore.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/video_core/renderer_vulkan/vk_master_semaphore.cpp b/src/video_core/renderer_vulkan/vk_master_semaphore.cpp index e65755de64..001b1b84d8 100644 --- a/src/video_core/renderer_vulkan/vk_master_semaphore.cpp +++ b/src/video_core/renderer_vulkan/vk_master_semaphore.cpp @@ -114,8 +114,11 @@ VkResult MasterSemaphore::SubmitQueue(vk::CommandBuffer& cmdbuf, vk::CommandBuff } } +// Use precise wait stages instead of ALL_COMMANDS to avoid pipeline-wide stalls. +// First entry is used for external acquire waits; we wait at transfer and color output stages +// because this submit contains an upload cmd buffer and a render cmd buffer. static constexpr std::array wait_stage_masks{ - VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, + VK_PIPELINE_STAGE_TRANSFER_BIT | VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, };