diff options
| author | Liam <byteslice@airmail.cc> | 2023-03-19 13:40:33 -0400 |
|---|---|---|
| committer | Liam <byteslice@airmail.cc> | 2023-03-19 13:40:33 -0400 |
| commit | af8ce05caaa810ee0e2148e92ee78ccc3cc6b8bf (patch) | |
| tree | 36c2fe33621d77b3721ed75a93d483c8291f0e5b /src/video_core | |
| parent | 79d776850ad0b1d456c754e26f19006b26224eaf (diff) | |
vulkan: fix more excessive waiting in scheduler
Diffstat (limited to 'src/video_core')
| -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 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() { |
