summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Liam2023-03-19 13:40:33 -0400
committerGravatar Liam2023-03-19 13:40:33 -0400
commitb9b1318bea1af744fb9183e808ba00352ffed4d1 (patch)
tree36c2fe33621d77b3721ed75a93d483c8291f0e5b
parentMerge pull request #9966 from bunnei/bounded-polyfill (diff)
downloadyuzu-b9b1318bea1af744fb9183e808ba00352ffed4d1.tar.gz
yuzu-b9b1318bea1af744fb9183e808ba00352ffed4d1.tar.xz
yuzu-b9b1318bea1af744fb9183e808ba00352ffed4d1.zip
vulkan: fix more excessive waiting in scheduler
-rw-r--r--src/video_core/renderer_vulkan/vk_scheduler.cpp9
1 files 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 c636a1625..55e699552 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() {
65 DispatchWork(); 65 DispatchWork();
66 66
67 // Ensure the queue is drained. 67 // Ensure the queue is drained.
68 std::unique_lock ql{queue_mutex}; 68 {
69 event_cv.wait(ql, [this] { return work_queue.empty(); }); 69 std::unique_lock ql{queue_mutex};
70 event_cv.wait(ql, [this] { return work_queue.empty(); });
71 }
70 72
71 // Now wait for execution to finish. 73 // Now wait for execution to finish.
72 // This needs to be done in the same order as WorkerThread. 74 std::scoped_lock el{execution_mutex};
73 std::unique_lock el{execution_mutex};
74} 75}
75 76
76void Scheduler::DispatchWork() { 77void Scheduler::DispatchWork() {