Permalink
Browse files

Merge pull request #11453 from unknownbrackets/bof3-flicker

Display: Resched interrupt before vblank threads
  • Loading branch information...
hrydgard committed Oct 8, 2018
2 parents 1b8bf31 + 014d9dd commit 52739a102164487ec3527dac201a10b17e547a78
Showing with 7 additions and 4 deletions.
  1. +3 −3 Core/HLE/sceDisplay.cpp
  2. +4 −1 GPU/Common/FramebufferCommon.cpp
View
@@ -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++;
@@ -955,7 +955,10 @@ void FramebufferManagerCommon::CopyDisplayToOutput() {
displayFramebuf_ = vfb;
if (vfb->fbo) {
DEBUG_LOG(FRAMEBUF, "Displaying FBO %08x", vfb->fb_address);
if (coreState == CORE_STEPPING)
VERBOSE_LOG(FRAMEBUF, "Displaying FBO %08x", vfb->fb_address);
else
DEBUG_LOG(FRAMEBUF, "Displaying FBO %08x", vfb->fb_address);
int uvRotation = useBufferedRendering_ ? g_Config.iInternalScreenRotation : ROTATION_LOCKED_HORIZONTAL;

0 comments on commit 52739a1

Please sign in to comment.