Merge pull request #3155 from bunnei/fix-asynch-gpu-wait

gpu_thread: Don't spin wait if there are no GPU commands.
This commit is contained in:
bunnei 2019-11-24 20:19:25 -05:00 committed by GitHub
commit 33a6b45a6c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -31,8 +31,7 @@ static void RunThread(VideoCore::RendererBase& renderer, Tegra::DmaPusher& dma_p
CommandDataContainer next; CommandDataContainer next;
while (state.is_running) { while (state.is_running) {
while (!state.queue.Empty()) { next = state.queue.PopWait();
state.queue.Pop(next);
if (const auto submit_list = std::get_if<SubmitListCommand>(&next.data)) { if (const auto submit_list = std::get_if<SubmitListCommand>(&next.data)) {
dma_pusher.Push(std::move(submit_list->entries)); dma_pusher.Push(std::move(submit_list->entries));
dma_pusher.DispatchCalls(); dma_pusher.DispatchCalls();
@ -49,7 +48,6 @@ static void RunThread(VideoCore::RendererBase& renderer, Tegra::DmaPusher& dma_p
} }
state.signaled_fence.store(next.fence); state.signaled_fence.store(next.fence);
} }
}
} }
ThreadManager::ThreadManager(Core::System& system) : system{system} {} ThreadManager::ThreadManager(Core::System& system) : system{system} {}