diff options
| author | 2023-03-19 13:40:33 -0400 | |
|---|---|---|
| committer | 2023-03-19 13:40:33 -0400 | |
| commit | b9b1318bea1af744fb9183e808ba00352ffed4d1 (patch) | |
| tree | 36c2fe33621d77b3721ed75a93d483c8291f0e5b | |
| parent | Merge pull request #9966 from bunnei/bounded-polyfill (diff) | |
| download | yuzu-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.cpp | 9 |
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 | ||
| 76 | void Scheduler::DispatchWork() { | 77 | void Scheduler::DispatchWork() { |