More FIFO work. I've implemented intelligent mechanism in GatherPipeBursted to prevent "FIFO is overflown by GatherPipe!". I commented HiWatermark_Tighter parameter. If Hopefully this patch fix this issue. I will delete this definitely. I tested StarFox for 20 minutes and works really fine. :) This patch also can help when the CPU go ahead the GPU and sync in better way.

Plus: I added a _assert_msg_ in FIFO loop when the WriteDistance is negative. Please if that happens report it, this can help to solve strange issues with wrong WriteDistances.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6495 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
Marcos Vitali
2010-11-28 20:12:41 +00:00
parent c540995193
commit 40c4e5f9a7
2 changed files with 28 additions and 13 deletions

View File

@ -196,6 +196,10 @@ void Fifo_EnterLoop(const SVideoInitialize &video_initialize)
readPtr += distToSend;
}
_assert_msg_(COMMANDPROCESSOR, _fifo.CPReadWriteDistance - distToSend >= 0 ,
"Negative fifo.CPReadWriteDistance = %i in FIFO Loop !\nThat can produce inestabilty in the game. Please report it.", _fifo.CPReadWriteDistance - distToSend);
Common::AtomicStore(_fifo.CPReadPointer, readPtr);
Common::AtomicAdd(_fifo.CPReadWriteDistance, -distToSend);
// Execute new instructions found in uData