From 177b7c1eb168beb9a6f24291f23db04a8855b7d4 Mon Sep 17 00:00:00 2001 From: mchughalex <25671999+mchughalex@users.noreply.github.com> Date: Sun, 19 Jul 2026 22:59:34 +0100 Subject: [PATCH] app: force-show the renderer indicator while the native renderer is off --- src/skate3_native_debug_dialog.cpp | 13 +++++++++++-- src/skate3_native_debug_dialog.h | 3 ++- third_party/rexglue-sdk | 2 +- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/skate3_native_debug_dialog.cpp b/src/skate3_native_debug_dialog.cpp index 457639f..78f4a3c 100644 --- a/src/skate3_native_debug_dialog.cpp +++ b/src/skate3_native_debug_dialog.cpp @@ -16,7 +16,9 @@ REXCVAR_DEFINE_BOOL(skate3_native_render_mode_indicator, false, "Skate 3", "Small top-right corner readout of which renderer produced the " "last presented frame: NATIVE (native scene renderer) or " - "EMULATED (Xenos GPU emulation: menus/loading yields, F5 off).") + "EMULATED (Xenos GPU emulation; menus/loading yields, F5 off). " + "Shows automatically while the native scene renderer is " + "switched off, regardless of this setting.") .lifecycle(rex::cvar::Lifecycle::kHotReload); // Hook-layer master (boot-time), shown read-only. @@ -945,7 +947,14 @@ void NativeDebugDialog::OnDraw(ImGuiIO& io) { } void RenderModeIndicator::OnDraw(ImGuiIO& io) { - if (!REXCVAR_GET(skate3_native_render_mode_indicator)) { + // Force-show while the native scene renderer is switched off (F5, the + // settings Renderer row, or the boot-time hook-layer master): running + // emulated is a degraded state the player should be able to see even with + // the indicator cvar off. Natural per-frame yields while the scene + // renderer is enabled (menus/loading) do not trigger this. + const bool scene_off = !REXCVAR_GET(skate3_native_render) || + !REXCVAR_GET(skate3_native_render_scene); + if (!REXCVAR_GET(skate3_native_render_mode_indicator) && !scene_off) { return; } // Pre-runtime (installer wizards) no guest frame exists yet - there is no diff --git a/src/skate3_native_debug_dialog.h b/src/skate3_native_debug_dialog.h index 9e5f5e4..30238c9 100644 --- a/src/skate3_native_debug_dialog.h +++ b/src/skate3_native_debug_dialog.h @@ -28,7 +28,8 @@ class NativeDebugDialog final : public rex::ui::ImGuiDialog { // presented frame: NATIVE (native scene renderer) or EMULATED (Xenos // GPU emulation; menus/loading yields, F5 off). Input-transparent, no // continuous repaint (updates ride the guest frame paints); off by -// default, shown via skate3_native_render_mode_indicator (hot). +// default, shown via skate3_native_render_mode_indicator (hot), and +// force-shown while the native scene renderer is switched off. class RenderModeIndicator final : public rex::ui::ImGuiDialog { public: explicit RenderModeIndicator(rex::ui::ImGuiDrawer* drawer) : ImGuiDialog(drawer) {} diff --git a/third_party/rexglue-sdk b/third_party/rexglue-sdk index 2365c97..09e6b66 160000 --- a/third_party/rexglue-sdk +++ b/third_party/rexglue-sdk @@ -1 +1 @@ -Subproject commit 2365c9784eb7a529ec7f44f74f51836519c6ab4b +Subproject commit 09e6b666850fd27d3d1ff78d5761567a5ba6049e