diff options
Diffstat (limited to 'Source/Core/VideoCommon')
| -rw-r--r-- | Source/Core/VideoCommon/Src/CommandProcessor.cpp | 2 | ||||
| -rw-r--r-- | Source/Core/VideoCommon/Src/Fifo.cpp | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/Source/Core/VideoCommon/Src/CommandProcessor.cpp b/Source/Core/VideoCommon/Src/CommandProcessor.cpp index ea153180c3..788a463ce2 100644 --- a/Source/Core/VideoCommon/Src/CommandProcessor.cpp +++ b/Source/Core/VideoCommon/Src/CommandProcessor.cpp @@ -571,7 +571,7 @@ bool AllowIdleSkipping() // if not then lock CPUThread until GP finish a frame.
void WaitForFrameFinish()
{
- while ((fake_GPWatchdogLastToken == fifo.Fake_GPWDToken) && fifo.bFF_GPReadEnable && ((!fifo.bFF_BPEnable && fifo.CPReadWriteDistance) || (fifo.bFF_BPEnable && !fifo.bFF_Breakpoint)));
+ while ((fake_GPWatchdogLastToken == fifo.Fake_GPWDToken) && fifo.bFF_GPReadEnable && ((!fifo.bFF_BPEnable && fifo.CPReadWriteDistance) || (fifo.bFF_BPEnable && !fifo.bFF_Breakpoint)))
{
s_fifoIdleEvent.Wait();
}
diff --git a/Source/Core/VideoCommon/Src/Fifo.cpp b/Source/Core/VideoCommon/Src/Fifo.cpp index 6ca7c3f259..b097af4644 100644 --- a/Source/Core/VideoCommon/Src/Fifo.cpp +++ b/Source/Core/VideoCommon/Src/Fifo.cpp @@ -97,6 +97,10 @@ void Fifo_ExitLoop() // Created to allow for self shutdown. void Fifo_ExitLoopNonBlocking() { + // This should break the wait loop in CPU thread + CommandProcessor::fifo.bFF_GPReadEnable = false; + CommandProcessor::SetFifoIdleFromVideoPlugin(); + // Terminate GPU thread loop fifoStateRun = false; fifo_run_event.Set(); } |
