From b9b1318bea1af744fb9183e808ba00352ffed4d1 Mon Sep 17 00:00:00 2001
From: Liam <byteslice@airmail.cc>
Date: Sun, 19 Mar 2023 13:40:33 -0400
Subject: [PATCH] vulkan: fix more excessive waiting in scheduler

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

diff --git a/src/video_core/renderer_vulkan/vk_scheduler.cpp b/src/video_core/renderer_vulkan/vk_scheduler.cpp
index c636a16256..55e699552d 100644
--- a/src/video_core/renderer_vulkan/vk_scheduler.cpp
+++ b/src/video_core/renderer_vulkan/vk_scheduler.cpp
@@ -65,12 +65,13 @@ void Scheduler::WaitWorker() {
     DispatchWork();
 
     // Ensure the queue is drained.
-    std::unique_lock ql{queue_mutex};
-    event_cv.wait(ql, [this] { return work_queue.empty(); });
+    {
+        std::unique_lock ql{queue_mutex};
+        event_cv.wait(ql, [this] { return work_queue.empty(); });
+    }
 
     // Now wait for execution to finish.
-    // This needs to be done in the same order as WorkerThread.
-    std::unique_lock el{execution_mutex};
+    std::scoped_lock el{execution_mutex};
 }
 
 void Scheduler::DispatchWork() {