Browse Source

vulkan: fix more excessive waiting in scheduler

Liam 3 năm trước cách đây
mục cha
commit
b9b1318bea
1 tập tin đã thay đổi với 5 bổ sung4 xóa
  1. 5 4
      src/video_core/renderer_vulkan/vk_scheduler.cpp

+ 5 - 4
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() {