diff options
Diffstat (limited to 'src/video_core')
| -rw-r--r-- | src/video_core/gpu_thread.cpp | 7 | 
1 files changed, 4 insertions, 3 deletions
| diff --git a/src/video_core/gpu_thread.cpp b/src/video_core/gpu_thread.cpp index f52f9e28f..3c5317777 100644 --- a/src/video_core/gpu_thread.cpp +++ b/src/video_core/gpu_thread.cpp @@ -31,9 +31,10 @@ static void RunThread(std::stop_token stop_token, Core::System& system,      auto current_context = context.Acquire();      VideoCore::RasterizerInterface* const rasterizer = renderer.ReadRasterizer(); +    CommandDataContainer next; +      while (!stop_token.stop_requested()) { -        CommandDataContainer next; -        state.queue.Pop(next, stop_token); +        state.queue.PopWait(next, stop_token);          if (stop_token.stop_requested()) {              break;          } @@ -117,7 +118,7 @@ u64 ThreadManager::PushCommand(CommandData&& command_data, bool block) {      std::unique_lock lk(state.write_lock);      const u64 fence{++state.last_fence}; -    state.queue.Push(CommandDataContainer(std::move(command_data), fence, block)); +    state.queue.EmplaceWait(std::move(command_data), fence, block);      if (block) {          Common::CondvarWait(state.cv, lk, thread.get_stop_token(), [this, fence] { | 
