mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-12-16 04:09:39 +00:00
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:
parent
6416b0a6ec
commit
700abd68e3
@ -457,6 +457,8 @@ static void FifoPlayerThread(Core::System& system, const std::optional<std::stri
|
||||
const auto init_video = [&] {
|
||||
DeclareAsGPUThread();
|
||||
|
||||
AsyncRequests::GetInstance()->SetPassthrough(!system.IsDualCoreMode());
|
||||
|
||||
// Must happen on the proper thread for some video backends, e.g. OpenGL.
|
||||
return g_video_backend->Initialize(wsi);
|
||||
};
|
||||
|
||||
@ -42,9 +42,6 @@ void AsyncRequests::QueueEvent(Event&& event)
|
||||
{
|
||||
m_empty.Clear();
|
||||
|
||||
if (!m_enable)
|
||||
return;
|
||||
|
||||
m_queue.push(std::move(event));
|
||||
|
||||
auto& system = Core::System::GetInstance();
|
||||
@ -57,20 +54,6 @@ void AsyncRequests::WaitForEmptyQueue()
|
||||
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)
|
||||
{
|
||||
std::unique_lock<std::mutex> lock(m_mutex);
|
||||
|
||||
@ -26,7 +26,6 @@ public:
|
||||
PullEventsInternal();
|
||||
}
|
||||
void WaitForEmptyQueue();
|
||||
void SetEnable(bool enable);
|
||||
void SetPassthrough(bool enable);
|
||||
|
||||
template <typename F>
|
||||
@ -74,6 +73,5 @@ private:
|
||||
std::mutex m_mutex;
|
||||
std::condition_variable m_cond;
|
||||
|
||||
bool m_enable = false;
|
||||
bool m_passthrough = true;
|
||||
};
|
||||
|
||||
@ -287,9 +287,6 @@ void FifoManager::ResetVideoBuffer()
|
||||
// Purpose: Keep the Core HW updated about the CPU-GPU distance
|
||||
void FifoManager::RunGpuLoop()
|
||||
{
|
||||
AsyncRequests::GetInstance()->SetEnable(true);
|
||||
AsyncRequests::GetInstance()->SetPassthrough(false);
|
||||
|
||||
m_gpu_mainloop.Run(
|
||||
[this] {
|
||||
// Run events from the CPU thread.
|
||||
@ -391,9 +388,6 @@ void FifoManager::RunGpuLoop()
|
||||
}
|
||||
},
|
||||
100);
|
||||
|
||||
AsyncRequests::GetInstance()->SetEnable(false);
|
||||
AsyncRequests::GetInstance()->SetPassthrough(true);
|
||||
}
|
||||
|
||||
void FifoManager::FlushGpu()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user