diff options
| author | skidau <skidau@gmail.com> | 2014-09-22 16:49:09 +1000 |
|---|---|---|
| committer | skidau <skidau@gmail.com> | 2014-09-22 16:49:09 +1000 |
| commit | 8c5e12cf028bfcc873b053e8a7f428a9d52ff333 (patch) | |
| tree | dd485e748914603bb604d1edd81f7ac0b304de4a /Source/Core/VideoCommon/CommandProcessor.cpp | |
| parent | 6379d3983af39175855c3d22253eb468bff100b2 (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.cpp | 14 |
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; |
