summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/Fifo.cpp
diff options
context:
space:
mode:
authorStenzek <stenzek@gmail.com>2021-04-17 15:54:50 +1000
committerStenzek <stenzek@gmail.com>2021-04-18 03:24:01 +1000
commite3ac5dca3218e62636659624b65a9ff599fee150 (patch)
tree9e51bbba699f26e4d3ef189a3c23a3b3a2e7ba3c /Source/Core/VideoCommon/Fifo.cpp
parent53222560650e4a99eceafcd537d4e04d1c50b3a6 (diff)
Fifo: Run/sync with the GPU on command processor register access
Diffstat (limited to 'Source/Core/VideoCommon/Fifo.cpp')
-rw-r--r--Source/Core/VideoCommon/Fifo.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/Source/Core/VideoCommon/Fifo.cpp b/Source/Core/VideoCommon/Fifo.cpp
index 57dcb07c85..5aede12b96 100644
--- a/Source/Core/VideoCommon/Fifo.cpp
+++ b/Source/Core/VideoCommon/Fifo.cpp
@@ -580,6 +580,16 @@ static void SyncGPUCallback(u64 ticks, s64 cyclesLate)
CoreTiming::ScheduleEvent(next, s_event_sync_gpu, next);
}
+void SyncGPUForRegisterAccess()
+{
+ SyncGPU(SyncGPUReason::Other);
+
+ if (!SConfig::GetInstance().bCPUThread || s_use_deterministic_gpu_thread)
+ RunGpuOnCpu(GPU_TIME_SLOT_SIZE);
+ else if (SConfig::GetInstance().bSyncGPU)
+ WaitForGpuThread(GPU_TIME_SLOT_SIZE);
+}
+
// Initialize GPU - CPU thread syncing, this gives us a deterministic way to start the GPU thread.
void Prepare()
{