vk_scheduler: wait for command processing to complete

This commit is contained in:
Liam 2022-10-03 20:03:25 -04:00
parent 61399de5db
commit 7969d4d5de
1 changed files with 4 additions and 2 deletions

View File

@ -139,6 +139,7 @@ void Scheduler::WorkerThread(std::stop_token stop_token) {
Common::SetCurrentThreadName("yuzu:VulkanWorker"); Common::SetCurrentThreadName("yuzu:VulkanWorker");
do { do {
std::unique_ptr<CommandChunk> work; std::unique_ptr<CommandChunk> work;
bool has_submit{false};
{ {
std::unique_lock lock{work_mutex}; std::unique_lock lock{work_mutex};
if (work_queue.empty()) { if (work_queue.empty()) {
@ -150,9 +151,10 @@ void Scheduler::WorkerThread(std::stop_token stop_token) {
} }
work = std::move(work_queue.front()); work = std::move(work_queue.front());
work_queue.pop(); work_queue.pop();
}
const bool has_submit = work->HasSubmit(); has_submit = work->HasSubmit();
work->ExecuteAll(current_cmdbuf); work->ExecuteAll(current_cmdbuf);
}
if (has_submit) { if (has_submit) {
AllocateWorkerCommandBuffer(); AllocateWorkerCommandBuffer();
} }