diff --git a/UI/EmuScreen.cpp b/UI/EmuScreen.cpp index ae24eb9cf7..92a62d95a9 100644 --- a/UI/EmuScreen.cpp +++ b/UI/EmuScreen.cpp @@ -1535,7 +1535,9 @@ ScreenRenderFlags EmuScreen::render(ScreenRenderMode mode) { // It's possible this might be set outside PSP_RunLoopFor(). // In this case, we need to double check it here. - checkPowerDown(); + if (mode & ScreenRenderMode::TOP) { + checkPowerDown(); + } draw->BindFramebufferAsRenderTarget(nullptr, { RPAction::CLEAR, RPAction::CLEAR, RPAction::CLEAR }, "EmuScreen_Invalid"); draw->SetViewport(viewport); draw->SetScissorRect(0, 0, g_display.pixel_xres, g_display.pixel_yres); @@ -1622,6 +1624,9 @@ ScreenRenderFlags EmuScreen::render(ScreenRenderMode mode) { return flags; } + // NOTE: We don't check for powerdown if we're not the top screen. + checkPowerDown(); + if (hasVisibleUI()) { // In most cases, this should already be bound and a no-op. draw->BindFramebufferAsRenderTarget(nullptr, { RPAction::KEEP, RPAction::DONT_CARE, RPAction::DONT_CARE }, "EmuScreen_UI");