summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/CommandProcessor.cpp
diff options
context:
space:
mode:
authorskidau <skidau@gmail.com>2014-09-22 16:49:09 +1000
committerskidau <skidau@gmail.com>2014-09-22 16:49:09 +1000
commit8c5e12cf028bfcc873b053e8a7f428a9d52ff333 (patch)
treedd485e748914603bb604d1edd81f7ac0b304de4a /Source/Core/VideoCommon/CommandProcessor.cpp
parent6379d3983af39175855c3d22253eb468bff100b2 (diff)
Moved the linking of the FIFO CPWritePointer near where CPWritePointer gets updated. The CPWritePointer was getting updated while it was in-flight causing Pac-man Party to flicker. Fixes issue 5223.
Diffstat (limited to 'Source/Core/VideoCommon/CommandProcessor.cpp')
-rw-r--r--Source/Core/VideoCommon/CommandProcessor.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/Source/Core/VideoCommon/CommandProcessor.cpp b/Source/Core/VideoCommon/CommandProcessor.cpp
index aa9f8c4f28..4cd1967ce9 100644
--- a/Source/Core/VideoCommon/CommandProcessor.cpp
+++ b/Source/Core/VideoCommon/CommandProcessor.cpp
@@ -325,6 +325,13 @@ void STACKALIGN GatherPipeBursted()
else
fifo.CPWritePointer += GATHER_PIPE_SIZE;
+ if (m_CPCtrlReg.GPReadEnable && m_CPCtrlReg.GPLinkEnable)
+ {
+ ProcessorInterface::Fifo_CPUWritePointer = fifo.CPWritePointer;
+ ProcessorInterface::Fifo_CPUBase = fifo.CPBase;
+ ProcessorInterface::Fifo_CPUEnd = fifo.CPEnd;
+ }
+
Common::AtomicAdd(fifo.CPReadWriteDistance, GATHER_PIPE_SIZE);
if (!IsOnThread())
@@ -485,13 +492,6 @@ void SetCpControlRegister()
fifo.bFF_LoWatermarkInt = m_CPCtrlReg.FifoUnderflowIntEnable;
fifo.bFF_GPLinkEnable = m_CPCtrlReg.GPLinkEnable;
- if (m_CPCtrlReg.GPReadEnable && m_CPCtrlReg.GPLinkEnable)
- {
- ProcessorInterface::Fifo_CPUWritePointer = fifo.CPWritePointer;
- ProcessorInterface::Fifo_CPUBase = fifo.CPBase;
- ProcessorInterface::Fifo_CPUEnd = fifo.CPEnd;
- }
-
if (fifo.bFF_GPReadEnable && !m_CPCtrlReg.GPReadEnable)
{
fifo.bFF_GPReadEnable = m_CPCtrlReg.GPReadEnable;