diff --git a/Core/HLE/sceDisplay.cpp b/Core/HLE/sceDisplay.cpp index 02bbc1e078..9d8bfe0990 100644 --- a/Core/HLE/sceDisplay.cpp +++ b/Core/HLE/sceDisplay.cpp @@ -645,6 +645,9 @@ void hleEnterVblank(u64 userdata, int cyclesLate) { CoreTiming::ScheduleEvent(msToCycles(vblankMs) - cyclesLate, leaveVblankEvent, vbCount + 1); + // Trigger VBlank interrupt handlers. + __TriggerInterrupt(PSP_INTR_IMMEDIATE | PSP_INTR_ONLY_IF_ENABLED | PSP_INTR_ALWAYS_RESCHED, PSP_VBLANK_INTR, PSP_INTR_SUB_ALL); + // Wake up threads waiting for VBlank u32 error; bool wokeThreads = false; @@ -663,9 +666,6 @@ void hleEnterVblank(u64 userdata, int cyclesLate) { __KernelReSchedule("entered vblank"); } - // Trigger VBlank interrupt handlers. - __TriggerInterrupt(PSP_INTR_IMMEDIATE | PSP_INTR_ONLY_IF_ENABLED | PSP_INTR_ALWAYS_RESCHED, PSP_VBLANK_INTR, PSP_INTR_SUB_ALL); - numVBlanks++; numVBlanksSinceFlip++;