From e74cee245ef0120699a40208031ca964c1cb673f Mon Sep 17 00:00:00 2001 From: PabloMK7 Date: Sat, 13 Jul 2024 23:49:26 +0200 Subject: [PATCH] renderer_vulkan: Reduce wait semaphores and wait for present before destroying --- src/video_core/renderer_vulkan/renderer_vulkan.cpp | 1 + src/video_core/renderer_vulkan/vk_master_semaphore.cpp | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/video_core/renderer_vulkan/renderer_vulkan.cpp b/src/video_core/renderer_vulkan/renderer_vulkan.cpp index bb81a1037..f00966085 100644 --- a/src/video_core/renderer_vulkan/renderer_vulkan.cpp +++ b/src/video_core/renderer_vulkan/renderer_vulkan.cpp @@ -73,6 +73,7 @@ RendererVulkan::RendererVulkan(Core::System& system, Pica::PicaCore& pica_, RendererVulkan::~RendererVulkan() { vk::Device device = instance.GetDevice(); scheduler.Finish(); + main_window.WaitPresent(); device.waitIdle(); device.destroyShaderModule(present_vertex_shader); diff --git a/src/video_core/renderer_vulkan/vk_master_semaphore.cpp b/src/video_core/renderer_vulkan/vk_master_semaphore.cpp index f8542524d..0e5ec6d97 100644 --- a/src/video_core/renderer_vulkan/vk_master_semaphore.cpp +++ b/src/video_core/renderer_vulkan/vk_master_semaphore.cpp @@ -68,9 +68,9 @@ void MasterSemaphoreTimeline::SubmitWork(vk::CommandBuffer cmdbuf, vk::Semaphore const std::array signal_values{signal_value, u64(0)}; const std::array signal_semaphores{Handle(), signal}; - const u32 num_wait_semaphores = wait ? 2U : 1U; - const std::array wait_values{signal_value - 1, u64(1)}; - const std::array wait_semaphores{Handle(), wait}; + const u32 num_wait_semaphores = wait ? 1U : 0U; + const std::array wait_values{u64(1)}; + const std::array wait_semaphores{wait}; static constexpr std::array wait_stage_masks = { vk::PipelineStageFlagBits::eAllCommands,