Browse Source
Merge pull request #9778 from behunin/my-box-chevy
gpu_thread: Use bounded queue
pull/15/merge
bunnei
3 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
4 additions and
3 deletions
-
src/video_core/gpu_thread.cpp
-
src/video_core/gpu_thread.h
|
|
|
@ -32,7 +32,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; |
|
|
|
} |
|
|
|
|
|
|
|
@ -10,8 +10,8 @@ |
|
|
|
#include <thread> |
|
|
|
#include <variant> |
|
|
|
|
|
|
|
#include "common/bounded_threadsafe_queue.h" |
|
|
|
#include "common/polyfill_thread.h" |
|
|
|
#include "common/threadsafe_queue.h" |
|
|
|
#include "video_core/framebuffer_config.h" |
|
|
|
|
|
|
|
namespace Tegra { |
|
|
|
@ -97,7 +97,7 @@ struct CommandDataContainer { |
|
|
|
|
|
|
|
/// Struct used to synchronize the GPU thread |
|
|
|
struct SynchState final { |
|
|
|
using CommandQueue = Common::MPSCQueue<CommandDataContainer, true>; |
|
|
|
using CommandQueue = Common::MPSCQueue<CommandDataContainer>; |
|
|
|
std::mutex write_lock; |
|
|
|
CommandQueue queue; |
|
|
|
u64 last_fence{}; |
|
|
|
|