summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/Src/CommandProcessor.cpp
diff options
context:
space:
mode:
authorskidau <skidau@gmail.com>2013-02-03 18:05:46 +1100
committerskidau <skidau@gmail.com>2013-02-03 18:05:46 +1100
commit9a4e9da7c25f1aa72f5b47e9914f464e966ad7f9 (patch)
tree270f79f7077965d817a98abdee693a7929b6d545 /Source/Core/VideoCommon/Src/CommandProcessor.cpp
parent867bfaa696807b3cb99b7af6cb9302f39d355ba3 (diff)
Set the token and finish interrupt signal from the video thread. This fixes the inconsistent state caused by lag from the scheduler. Fixes Rayman 3: Hoodlum Havoc and Shamu's Deep Sea Adventures.
Fixes issue 5401. Fixes issue 5589.
Diffstat (limited to 'Source/Core/VideoCommon/Src/CommandProcessor.cpp')
-rw-r--r--Source/Core/VideoCommon/Src/CommandProcessor.cpp8
1 files changed, 2 insertions, 6 deletions
diff --git a/Source/Core/VideoCommon/Src/CommandProcessor.cpp b/Source/Core/VideoCommon/Src/CommandProcessor.cpp
index 12b11d7ea5..7e976f256e 100644
--- a/Source/Core/VideoCommon/Src/CommandProcessor.cpp
+++ b/Source/Core/VideoCommon/Src/CommandProcessor.cpp
@@ -464,7 +464,7 @@ void STACKALIGN GatherPipeBursted()
}
if (IsOnThread())
- SetOverflowStatusFromGatherPipe();
+ SetWatermarkFromGatherPipe();
// update the fifo-pointer
if (fifo.CPWritePointer >= fifo.CPEnd)
@@ -514,7 +514,7 @@ void AbortFrame()
}
-void SetOverflowStatusFromGatherPipe()
+void SetWatermarkFromGatherPipe()
{
fifo.bFF_HiWatermark = (fifo.CPReadWriteDistance > fifo.CPHiWatermark);
fifo.bFF_LoWatermark = (fifo.CPReadWriteDistance < fifo.CPLoWatermark);
@@ -634,10 +634,6 @@ void SetCpStatusRegister()
m_CPStatusReg.UnderflowLoWatermark = fifo.bFF_LoWatermark;
m_CPStatusReg.OverflowHiWatermark = fifo.bFF_HiWatermark;
- // HACK to compensate for slow response to PE interrupts in Time Splitters: Future Perfect
- if (IsOnThread())
- PixelEngine::ResumeWaitingForPEInterrupt();
-
INFO_LOG(COMMANDPROCESSOR,"\t Read from STATUS_REGISTER : %04x", m_CPStatusReg.Hex);
DEBUG_LOG(COMMANDPROCESSOR, "(r) status: iBP %s | fReadIdle %s | fCmdIdle %s | iOvF %s | iUndF %s"
, m_CPStatusReg.Breakpoint ? "ON" : "OFF"