From 49080f61195419ce936764b3aee4a3de34560be5 Mon Sep 17 00:00:00 2001 From: Max Roncace Date: Tue, 17 Mar 2026 01:29:59 -0400 Subject: [PATCH] Move aurora_begin_frame/aurora_end_frame calls to main loop This fixes an issue when using SDL's X11 backend due to Dusk attempting to render ImGui menus without an active frame. --- libs/JSystem/src/JFramework/JFWDisplay.cpp | 8 -------- src/m_Do/m_Do_main.cpp | 12 +++++++++--- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/libs/JSystem/src/JFramework/JFWDisplay.cpp b/libs/JSystem/src/JFramework/JFWDisplay.cpp index 6812a81880..b55649a1bc 100644 --- a/libs/JSystem/src/JFramework/JFWDisplay.cpp +++ b/libs/JSystem/src/JFramework/JFWDisplay.cpp @@ -227,10 +227,6 @@ void JFWDisplay::endGX() { } void JFWDisplay::beginRender() { -#if TARGET_PC - aurora_begin_frame(); -#endif - if (field_0x40) { JUTProcBar::getManager()->wholeLoopEnd(); } @@ -342,10 +338,6 @@ void JFWDisplay::endFrame() { JUTProcBar::getManager()->setCostFrame(retrace_cnt - prevFrame); prevFrame = retrace_cnt; } - -#if TARGET_PC - aurora_end_frame(); -#endif } void JFWDisplay::waitBlanking(int param_0) { diff --git a/src/m_Do/m_Do_main.cpp b/src/m_Do/m_Do_main.cpp index 98cd35ef01..20fc2a8aee 100644 --- a/src/m_Do/m_Do_main.cpp +++ b/src/m_Do/m_Do_main.cpp @@ -172,18 +172,24 @@ void main01(void) { VIWaitForRetrace(); +#if TARGET_PC + if (!aurora_begin_frame()) { + DuskLog.debug("aurora_begin_frame returned false, skipping draw this frame"); + continue; + } +#endif + // EXECUTE GAME LOGIC & RENDER // This calls mDoGph_Painter -> JFWDisplay -> GX Functions fapGm_Execute(); mDoAud_Execute(); + aurora_end_frame(); + #if TARGET_PC frameLimiter.Sleep(DUSK_FRAME_PERIOD); #endif - - //aurora_end_frame(); - } while (true); exit:;