From 7969d4d5de2661348c89c5b5d1481624edfce182 Mon Sep 17 00:00:00 2001
From: Liam <byteslice@airmail.cc>
Date: Mon, 3 Oct 2022 20:03:25 -0400
Subject: [PATCH] vk_scheduler: wait for command processing to complete

---
 src/video_core/renderer_vulkan/vk_scheduler.cpp | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/video_core/renderer_vulkan/vk_scheduler.cpp b/src/video_core/renderer_vulkan/vk_scheduler.cpp
index a331ff37e..7a4868e58 100644
--- a/src/video_core/renderer_vulkan/vk_scheduler.cpp
+++ b/src/video_core/renderer_vulkan/vk_scheduler.cpp
@@ -139,6 +139,7 @@ void Scheduler::WorkerThread(std::stop_token stop_token) {
     Common::SetCurrentThreadName("yuzu:VulkanWorker");
     do {
         std::unique_ptr<CommandChunk> work;
+        bool has_submit{false};
         {
             std::unique_lock lock{work_mutex};
             if (work_queue.empty()) {
@@ -150,9 +151,10 @@ void Scheduler::WorkerThread(std::stop_token stop_token) {
             }
             work = std::move(work_queue.front());
             work_queue.pop();
+
+            has_submit = work->HasSubmit();
+            work->ExecuteAll(current_cmdbuf);
         }
-        const bool has_submit = work->HasSubmit();
-        work->ExecuteAll(current_cmdbuf);
         if (has_submit) {
             AllocateWorkerCommandBuffer();
         }