Reschedule after many cases of eating cycles.

All of these eat enough cycles they could cause issues in a loop, and I'm
pretty sure they would reschedule.
This commit is contained in:
Unknown W. Brackets 2014-06-13 00:30:21 -07:00
parent 1ef3ac6e55
commit aa6355a9e5
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);