diff options
author | Levi Behunin <l3ehunin@gmail.com> | 2022-06-02 09:08:18 +0200 |
---|---|---|
committer | Levi Behunin <l3ehunin@gmail.com> | 2022-06-03 03:37:46 +0200 |
commit | 4dd6bcd2063909359b08771465c3641876ddf138 (patch) | |
tree | f7a52e974aae7f50131acf233613d8e9d43757d0 /src/video_core | |
parent | Merge pull request #8409 from liamwhite/tdesc-fix (diff) | |
download | yuzu-4dd6bcd2063909359b08771465c3641876ddf138.tar yuzu-4dd6bcd2063909359b08771465c3641876ddf138.tar.gz yuzu-4dd6bcd2063909359b08771465c3641876ddf138.tar.bz2 yuzu-4dd6bcd2063909359b08771465c3641876ddf138.tar.lz yuzu-4dd6bcd2063909359b08771465c3641876ddf138.tar.xz yuzu-4dd6bcd2063909359b08771465c3641876ddf138.tar.zst yuzu-4dd6bcd2063909359b08771465c3641876ddf138.zip |
Diffstat (limited to 'src/video_core')
-rw-r--r-- | src/video_core/gpu_thread.cpp | 3 | ||||
-rw-r--r-- | src/video_core/gpu_thread.h | 6 |
2 files changed, 5 insertions, 4 deletions
diff --git a/src/video_core/gpu_thread.cpp b/src/video_core/gpu_thread.cpp index b79a73132..8479dc6d2 100644 --- a/src/video_core/gpu_thread.cpp +++ b/src/video_core/gpu_thread.cpp @@ -31,7 +31,8 @@ static void RunThread(std::stop_token stop_token, Core::System& system, VideoCore::RasterizerInterface* const rasterizer = renderer.ReadRasterizer(); while (!stop_token.stop_requested()) { - CommandDataContainer next = state.queue.PopWait(stop_token); + CommandDataContainer next; + state.queue.Pop(next, stop_token); if (stop_token.stop_requested()) { break; } diff --git a/src/video_core/gpu_thread.h b/src/video_core/gpu_thread.h index 71cd35756..ad9fd5eff 100644 --- a/src/video_core/gpu_thread.h +++ b/src/video_core/gpu_thread.h @@ -10,7 +10,7 @@ #include <thread> #include <variant> -#include "common/threadsafe_queue.h" +#include "common/bounded_threadsafe_queue.h" #include "video_core/framebuffer_config.h" namespace Tegra { @@ -96,9 +96,9 @@ struct CommandDataContainer { /// Struct used to synchronize the GPU thread struct SynchState final { - using CommandQueue = Common::SPSCQueue<CommandDataContainer, true>; + using CommandQueue = Common::MPSCQueue<CommandDataContainer>; std::mutex write_lock; - CommandQueue queue; + CommandQueue queue{512}; // size must be 2^n u64 last_fence{}; std::atomic<u64> signaled_fence{}; std::condition_variable_any cv; |