Merge pull request #6305 from unknownbrackets/resched

Reschedule after many cases of eating cycles
This commit is contained in:
Henrik Rydgård 2014-06-13 20:46:51 +02:00
commit cb6aa5a708
3 changed files with 6 additions and 0 deletions

View File

@ -838,6 +838,7 @@ u32 sceDisplayWaitVblank() {
} else {
DEBUG_LOG(SCEDISPLAY,"sceDisplayWaitVblank() - not waiting since in vBlank");
hleEatCycles(1110);
hleReSchedule("vblank wait skipped");
return 1;
}
}
@ -866,6 +867,7 @@ u32 sceDisplayWaitVblankCB() {
} else {
DEBUG_LOG(SCEDISPLAY,"sceDisplayWaitVblankCB() - not waiting since in vBlank");
hleEatCycles(1110);
hleReSchedule("vblank wait skipped");
return 1;
}
}

View File

@ -381,6 +381,7 @@ int sceKernelDcacheWritebackAll()
// to zap the whole texture cache.
gpu->InvalidateCache(0, -1, GPU_INVALIDATE_ALL);
hleEatCycles(3524);
hleReSchedule("dcache writeback all");
return 0;
}
@ -419,6 +420,7 @@ int sceKernelDcacheWritebackInvalidateAll()
#endif
gpu->InvalidateCache(0, -1, GPU_INVALIDATE_ALL);
hleEatCycles(1165);
hleReSchedule("dcache invalidate all");
return 0;
}

View File

@ -1352,6 +1352,8 @@ int sceMpegRingbufferAvailableSize(u32 ringbufferAddr)
}
hleEatCycles(2020);
hleReSchedule("mpeg ringbuffer avail");
static int lastFree = 0;
if (lastFree != ringbuffer->packetsFree) {
DEBUG_LOG(ME, "%i=sceMpegRingbufferAvailableSize(%08x)", ringbuffer->packetsFree, ringbufferAddr);