diff options
author | Markus Wick <markus@selfnet.de> | 2021-04-06 20:30:22 +0200 |
---|---|---|
committer | Markus Wick <markus@selfnet.de> | 2021-04-07 22:38:52 +0200 |
commit | 4aec060f6de410698d5b0a5bffd42d4327b258e4 (patch) | |
tree | 224799482cc260b15af31274497d92c308393113 /src/video_core/gpu_thread.cpp | |
parent | 3173a53db9f9b97bb45d510467c939ab33eeac1e (diff) |
common/threadsafe_queue: Provide Wait() method.
It shall block until there is something to consume in the queue.
And use it for the GPU emulation instead of the spin loop.
This is only in booting the emulator, however in BOTW this is the case for about 1 second.
Diffstat (limited to 'src/video_core/gpu_thread.cpp')
-rw-r--r-- | src/video_core/gpu_thread.cpp | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/src/video_core/gpu_thread.cpp b/src/video_core/gpu_thread.cpp index 99353f15f5..cd59a7faf1 100644 --- a/src/video_core/gpu_thread.cpp +++ b/src/video_core/gpu_thread.cpp @@ -29,8 +29,7 @@ static void RunThread(Core::System& system, VideoCore::RendererBase& renderer, system.RegisterHostThread(); // Wait for first GPU command before acquiring the window context - while (state.queue.Empty()) - ; + state.queue.Wait(); // If emulation was stopped during disk shader loading, abort before trying to acquire context if (!state.is_running) { |