Improve for my last commit, also reset the VideoBuffer and Forget turn on GPReadEnable. If this is not enoughs for GC games. I will replace CPReadWriteDistance = 0 for ProcessFifoAllDistance.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6974 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
Marcos Vitali 2011-01-29 21:26:46 +00:00
parent 3078db08c7
commit c0571ae9de
3 changed files with 9 additions and 2 deletions

View File

@ -805,11 +805,11 @@ void SetFifoIdleFromVideoPlugin()
// to 0 when PI_FIFO_RESET occurs.
void AbortFrame()
{
g_VideoInitialize.pResetGatherPipe();
fifo.bFF_GPReadEnable = false;
while (CommandProcessor::isFifoBusy)
Common::YieldCPU();
g_VideoInitialize.pResetGatherPipe();
ResetVideoBuffer();
fifo.CPReadPointer = fifo.CPWritePointer;
fifo.CPReadWriteDistance = 0;
fifo.CPBreakpoint = 0;
@ -817,6 +817,7 @@ void AbortFrame()
fifo.CPCmdIdle = false;
PixelEngine::ResetSetToken();
PixelEngine::ResetSetFinish();
fifo.bFF_GPReadEnable = true;
}
void SetOverflowStatusFromGatherPipe()

View File

@ -129,6 +129,12 @@ void Fifo_SendFifoData(u8* _uData, u32 len)
size += len;
}
void ResetVideoBuffer()
{
g_pVideoData = videoBuffer;
size = 0;
}
// Description: Main FIFO update loop
// Purpose: Keep the Core HW updated about the CPU-GPU distance

View File

@ -40,7 +40,7 @@ void Fifo_ExitLoopNonBlocking();
void Fifo_RunLoop(bool run);
bool AtBreakpoint();
void Fifo_DoState(PointerWrap &f);
void ResetVideoBuffer();
void Fifo_SetRendering(bool bEnabled);
// Implemented by the Video Plugin