diff options
| author | 2023-02-11 09:28:07 -0700 | |
|---|---|---|
| committer | 2023-03-03 18:20:56 -0700 | |
| commit | 44518b225cfeeeaab182592e7751874c46d18b82 (patch) | |
| tree | 7c099f639daf36a9c55750a75956d3ab0b27f2b0 /src | |
| parent | Merge pull request #9855 from liamwhite/kern-16-support (diff) | |
| download | yuzu-44518b225cfeeeaab182592e7751874c46d18b82.tar.gz yuzu-44518b225cfeeeaab182592e7751874c46d18b82.tar.xz yuzu-44518b225cfeeeaab182592e7751874c46d18b82.zip | |
gpu_thread: Use bounded queue
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/gpu_thread.cpp | 3 | ||||
| -rw-r--r-- | src/video_core/gpu_thread.h | 4 |
2 files changed, 4 insertions, 3 deletions
diff --git a/src/video_core/gpu_thread.cpp b/src/video_core/gpu_thread.cpp index 9c103c0d4..7cc5647e9 100644 --- a/src/video_core/gpu_thread.cpp +++ b/src/video_core/gpu_thread.cpp | |||
| @@ -32,7 +32,8 @@ static void RunThread(std::stop_token stop_token, Core::System& system, | |||
| 32 | VideoCore::RasterizerInterface* const rasterizer = renderer.ReadRasterizer(); | 32 | VideoCore::RasterizerInterface* const rasterizer = renderer.ReadRasterizer(); |
| 33 | 33 | ||
| 34 | while (!stop_token.stop_requested()) { | 34 | while (!stop_token.stop_requested()) { |
| 35 | CommandDataContainer next = state.queue.PopWait(stop_token); | 35 | CommandDataContainer next; |
| 36 | state.queue.Pop(next, stop_token); | ||
| 36 | if (stop_token.stop_requested()) { | 37 | if (stop_token.stop_requested()) { |
| 37 | break; | 38 | break; |
| 38 | } | 39 | } |
diff --git a/src/video_core/gpu_thread.h b/src/video_core/gpu_thread.h index 90bcb5958..43940bd6d 100644 --- a/src/video_core/gpu_thread.h +++ b/src/video_core/gpu_thread.h | |||
| @@ -10,8 +10,8 @@ | |||
| 10 | #include <thread> | 10 | #include <thread> |
| 11 | #include <variant> | 11 | #include <variant> |
| 12 | 12 | ||
| 13 | #include "common/bounded_threadsafe_queue.h" | ||
| 13 | #include "common/polyfill_thread.h" | 14 | #include "common/polyfill_thread.h" |
| 14 | #include "common/threadsafe_queue.h" | ||
| 15 | #include "video_core/framebuffer_config.h" | 15 | #include "video_core/framebuffer_config.h" |
| 16 | 16 | ||
| 17 | namespace Tegra { | 17 | namespace Tegra { |
| @@ -97,7 +97,7 @@ struct CommandDataContainer { | |||
| 97 | 97 | ||
| 98 | /// Struct used to synchronize the GPU thread | 98 | /// Struct used to synchronize the GPU thread |
| 99 | struct SynchState final { | 99 | struct SynchState final { |
| 100 | using CommandQueue = Common::MPSCQueue<CommandDataContainer, true>; | 100 | using CommandQueue = Common::MPSCQueue<CommandDataContainer>; |
| 101 | std::mutex write_lock; | 101 | std::mutex write_lock; |
| 102 | CommandQueue queue; | 102 | CommandQueue queue; |
| 103 | u64 last_fence{}; | 103 | u64 last_fence{}; |