VideoCommon/AsyncRequests: Remove now unnecessary SetEnable function. Requests are now always enabled. Call SetPassthrough on initialization to not be racy.

This commit is contained in:
Jordan Woyak 2025-10-25 16:47:09 -05:00
parent 6416b0a6ec
commit 700abd68e3
4 changed files with 2 additions and 25 deletions

View File

@ -457,6 +457,8 @@ static void FifoPlayerThread(Core::System& system, const std::optional<std::stri
const auto init_video = [&] { const auto init_video = [&] {
DeclareAsGPUThread(); DeclareAsGPUThread();
AsyncRequests::GetInstance()->SetPassthrough(!system.IsDualCoreMode());
// Must happen on the proper thread for some video backends, e.g. OpenGL. // Must happen on the proper thread for some video backends, e.g. OpenGL.
return g_video_backend->Initialize(wsi); return g_video_backend->Initialize(wsi);
}; };

View File

@ -42,9 +42,6 @@ void AsyncRequests::QueueEvent(Event&& event)
{ {
m_empty.Clear(); m_empty.Clear();
if (!m_enable)
return;
m_queue.push(std::move(event)); m_queue.push(std::move(event));
auto& system = Core::System::GetInstance(); auto& system = Core::System::GetInstance();
@ -57,20 +54,6 @@ void AsyncRequests::WaitForEmptyQueue()
m_cond.wait(lock, [this] { return m_queue.empty(); }); m_cond.wait(lock, [this] { return m_queue.empty(); });
} }
void AsyncRequests::SetEnable(bool enable)
{
std::unique_lock<std::mutex> lock(m_mutex);
m_enable = enable;
if (!enable)
{
// flush the queue on disabling
while (!m_queue.empty())
m_queue.pop();
m_cond.notify_one();
}
}
void AsyncRequests::SetPassthrough(bool enable) void AsyncRequests::SetPassthrough(bool enable)
{ {
std::unique_lock<std::mutex> lock(m_mutex); std::unique_lock<std::mutex> lock(m_mutex);

View File

@ -26,7 +26,6 @@ public:
PullEventsInternal(); PullEventsInternal();
} }
void WaitForEmptyQueue(); void WaitForEmptyQueue();
void SetEnable(bool enable);
void SetPassthrough(bool enable); void SetPassthrough(bool enable);
template <typename F> template <typename F>
@ -74,6 +73,5 @@ private:
std::mutex m_mutex; std::mutex m_mutex;
std::condition_variable m_cond; std::condition_variable m_cond;
bool m_enable = false;
bool m_passthrough = true; bool m_passthrough = true;
}; };

View File

@ -287,9 +287,6 @@ void FifoManager::ResetVideoBuffer()
// Purpose: Keep the Core HW updated about the CPU-GPU distance // Purpose: Keep the Core HW updated about the CPU-GPU distance
void FifoManager::RunGpuLoop() void FifoManager::RunGpuLoop()
{ {
AsyncRequests::GetInstance()->SetEnable(true);
AsyncRequests::GetInstance()->SetPassthrough(false);
m_gpu_mainloop.Run( m_gpu_mainloop.Run(
[this] { [this] {
// Run events from the CPU thread. // Run events from the CPU thread.
@ -391,9 +388,6 @@ void FifoManager::RunGpuLoop()
} }
}, },
100); 100);
AsyncRequests::GetInstance()->SetEnable(false);
AsyncRequests::GetInstance()->SetPassthrough(true);
} }
void FifoManager::FlushGpu() void FifoManager::FlushGpu()