summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorskidau <skidau@gmail.com>2014-09-05 11:24:46 +1000
committerskidau <skidau@gmail.com>2014-09-05 11:24:46 +1000
commit73fc45db688d625a734552d2a95090a7a2f1f576 (patch)
tree3ee0d495b91193beb599a71ce46ff6bbc4252290 /Source
parentf9650c52f8f6dcf5bdb78b9e114a100bf83c19b1 (diff)
parent86db0bf8c3a6fb16c3a70a637ad845a1a47e30b0 (diff)
Merge pull request #967 from skidau/SyncGPU-SaveState
Added the EmuRunningState check to the GPU thread's FIFO loop
Diffstat (limited to 'Source')
-rw-r--r--Source/Core/VideoCommon/Fifo.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/Source/Core/VideoCommon/Fifo.cpp b/Source/Core/VideoCommon/Fifo.cpp
index 8a872d5422..b45bfab120 100644
--- a/Source/Core/VideoCommon/Fifo.cpp
+++ b/Source/Core/VideoCommon/Fifo.cpp
@@ -153,7 +153,7 @@ void RunGpuLoop()
Common::AtomicStore(CommandProcessor::VITicks, CommandProcessor::m_cpClockOrigin);
// check if we are able to run this buffer
- while (GpuRunningState && !CommandProcessor::interruptWaiting && fifo.bFF_GPReadEnable && fifo.CPReadWriteDistance && !AtBreakpoint())
+ while (GpuRunningState && EmuRunningState && !CommandProcessor::interruptWaiting && fifo.bFF_GPReadEnable && fifo.CPReadWriteDistance && !AtBreakpoint())
{
fifo.isGpuReadingData = true;
CommandProcessor::isPossibleWaitingSetDrawDone = fifo.bFF_GPLinkEnable ? true : false;
@@ -175,7 +175,7 @@ void RunGpuLoop()
cyclesExecuted = OpcodeDecoder_Run(GetVideoBufferEndPtr());
- if (Core::g_CoreStartupParameter.bSyncGPU && Common::AtomicLoad(CommandProcessor::VITicks) > cyclesExecuted)
+ if (Core::g_CoreStartupParameter.bSyncGPU && Common::AtomicLoad(CommandProcessor::VITicks) >= cyclesExecuted)
Common::AtomicAdd(CommandProcessor::VITicks, -(s32)cyclesExecuted);
Common::AtomicStore(fifo.CPReadPointer, readPtr);