More green. CPU sleeps when fifo HiWaterMark reached now. Showing more obviously when GPU become the bottleneck. Again, if it hurts perf -> GPU needs improvement where CPU load drop. I need to check some fifo stuff. TODO: test if HiWM are less reached with or without sending the whole fifoReadWriteDistance.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@1867 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
memberTwo.mb2 2009-01-14 11:23:00 +00:00
parent 32ef02c959
commit ed3281290d
1 changed files with 4 additions and 3 deletions

View File

@ -372,6 +372,8 @@ void Write16(const u16 _Value, const u32 _Address)
*/
LOG(COMMANDPROCESSOR, "*********************** GXSetGPFifo very soon? ***********************");
u32 ct=0;
// (mb2) We don't sleep here since it could be a perf issue for super monkey ball (yup only this game IIRC)
// Touching that game is a no-go so I don't want to take the risk :p
while (fifo.bFF_GPReadEnable && fifo.CPReadWriteDistance > 0 )
ct++;
if (ct) {LOG(COMMANDPROCESSOR, "(Write16): %lu cycles for nothing :[ ", ct);}
@ -603,10 +605,9 @@ void STACKALIGN GatherPipeBursted()
while (!(fifo.bFF_BPEnable && fifo.bFF_Breakpoint) && fifo.CPReadWriteDistance > fifo.CPLoWatermark)
{
ct++;
// dunno if others threads (like the audio thread) really need a forced context switch here
//Common::SleepCurrentThread(1);
Common::SleepCurrentThread(1);
}
if (ct) {LOG(COMMANDPROCESSOR, "(GatherPipeBursted): %lu cycles for nothing :[", ct);}
if (ct) {LOG(COMMANDPROCESSOR, "(GatherPipeBursted): %lu ms for nothing :[", ct);}
/**/
}
// check if we are in sync