diff options
| author | JosJuice <josjuice@gmail.com> | 2025-10-28 21:18:47 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-28 21:18:47 +0100 |
| commit | 3d764f7b42b860db834159bb2db12e88abdffbed (patch) | |
| tree | 31875b1f53c28aa61fdfc8c89de7b374e10b7a16 /Source/Core/VideoCommon | |
| parent | 509584d3d3c8b7a66330d2bdb16e609e20f2dbbf (diff) | |
| parent | c69f868fff9bbbd3099abeb00a7a8da8dc930ecf (diff) | |
Merge pull request #14032 from jordan-woyak/spawn-gpu-thread
Core: Make EmuThread spawn a GPU thread and become the CPU thread in dual-core mode.
Diffstat (limited to 'Source/Core/VideoCommon')
| -rw-r--r-- | Source/Core/VideoCommon/AsyncRequests.cpp | 17 | ||||
| -rw-r--r-- | Source/Core/VideoCommon/AsyncRequests.h | 2 | ||||
| -rw-r--r-- | Source/Core/VideoCommon/Fifo.cpp | 6 |
3 files changed, 0 insertions, 25 deletions
diff --git a/Source/Core/VideoCommon/AsyncRequests.cpp b/Source/Core/VideoCommon/AsyncRequests.cpp index 0469d3ebb9..6671f93293 100644 --- a/Source/Core/VideoCommon/AsyncRequests.cpp +++ b/Source/Core/VideoCommon/AsyncRequests.cpp @@ -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); diff --git a/Source/Core/VideoCommon/AsyncRequests.h b/Source/Core/VideoCommon/AsyncRequests.h index 1c72b55b85..7b8cdd036b 100644 --- a/Source/Core/VideoCommon/AsyncRequests.h +++ b/Source/Core/VideoCommon/AsyncRequests.h @@ -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; }; diff --git a/Source/Core/VideoCommon/Fifo.cpp b/Source/Core/VideoCommon/Fifo.cpp index 513b655408..0e7bb4c341 100644 --- a/Source/Core/VideoCommon/Fifo.cpp +++ b/Source/Core/VideoCommon/Fifo.cpp @@ -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() |
