From 4e90d82e231b3a3c865b6e2f1efe18dd0c03aeed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Sat, 30 Dec 2023 11:58:29 +0100 Subject: [PATCH] Fix sceKernelExitGame (regressed with the run-in-background stuff) --- UI/EmuScreen.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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");