diff options
Diffstat (limited to 'Source/Core/VideoCommon/Src/CommandProcessor.cpp')
| -rw-r--r-- | Source/Core/VideoCommon/Src/CommandProcessor.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/Source/Core/VideoCommon/Src/CommandProcessor.cpp b/Source/Core/VideoCommon/Src/CommandProcessor.cpp index e6a0589ba5..0adbf42b9b 100644 --- a/Source/Core/VideoCommon/Src/CommandProcessor.cpp +++ b/Source/Core/VideoCommon/Src/CommandProcessor.cpp @@ -118,6 +118,7 @@ volatile bool interruptSet= false; volatile bool interruptWaiting= false; volatile bool interruptTokenWaiting = false; volatile bool interruptFinishWaiting = false; +volatile bool OnOverflow = false; void FifoCriticalEnter() { @@ -669,6 +670,26 @@ void STACKALIGN GatherPipeBursted() UpdateInterruptsScMode(); } } + else + { + if(fifo.CPReadWriteDistance == fifo.CPEnd - fifo.CPBase - 32) + { + if(!OnOverflow) + NOTICE_LOG(COMMANDPROCESSOR,"FIFO is almost in overflown, BreakPoint: %i", fifo.bFF_Breakpoint); + OnOverflow = true; + while (!CommandProcessor::interruptWaiting && fifo.bFF_GPReadEnable && + fifo.CPReadWriteDistance > fifo.CPEnd - fifo.CPBase - 64) + Common::YieldCPU(); + + + + + } + else + { + OnOverflow = false; + } + } _assert_msg_(COMMANDPROCESSOR, fifo.CPReadWriteDistance <= fifo.CPEnd - fifo.CPBase, |
