From 625754f0f7bfcee67b04ab654fec3d7df0fa343c Mon Sep 17 00:00:00 2001 From: Kelsi Date: Fri, 20 Mar 2026 07:53:07 -0700 Subject: [PATCH] fix: let FSR3 settings persist across restarts without env var FSR2/FSR3 upscaling mode was forcibly reverted to FSR1 on every startup unless the WOWEE_ALLOW_STARTUP_FSR2 environment variable was set. This meant users had to re-select FSR 3.x and re-enable frame generation on every launch. Removed the env var requirement since the deferred activation (wait until IN_WORLD state) already provides sufficient startup safety by preventing FSR init during login/character screens. --- src/ui/game_screen.cpp | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/src/ui/game_screen.cpp b/src/ui/game_screen.cpp index 877905e9..ec7c4f79 100644 --- a/src/ui/game_screen.cpp +++ b/src/ui/game_screen.cpp @@ -594,22 +594,10 @@ void GameScreen::render(game::GameHandler& gameHandler) { renderer->setFSRSharpness(pendingFSRSharpness); renderer->setFSR2DebugTuning(pendingFSR2JitterSign, pendingFSR2MotionVecScaleX, pendingFSR2MotionVecScaleY); renderer->setAmdFsr3FramegenEnabled(pendingAMDFramegen); - // Safety fallback: persisted FSR2 can still hang on some systems during startup. - // Require explicit opt-in for startup FSR2; otherwise fall back to FSR1. - const bool allowStartupFsr2 = (std::getenv("WOWEE_ALLOW_STARTUP_FSR2") != nullptr); int effectiveMode = pendingUpscalingMode; - if (effectiveMode == 2 && !allowStartupFsr2) { - static bool warnedStartupFsr2Fallback = false; - if (!warnedStartupFsr2Fallback) { - LOG_WARNING("Startup FSR2 is disabled by default for stability; falling back to FSR1. Set WOWEE_ALLOW_STARTUP_FSR2=1 to override."); - warnedStartupFsr2Fallback = true; - } - effectiveMode = 1; - pendingUpscalingMode = 1; - pendingFSR = true; - } - // If explicitly enabled, still defer FSR2 until fully in-world. + // Defer FSR2/FSR3 activation until fully in-world to avoid + // init issues during login/character selection screens. if (effectiveMode == 2 && gameHandler.getState() != game::WorldState::IN_WORLD) { renderer->setFSREnabled(false); renderer->setFSR2Enabled(false);