From 94ad89c764d06b52a75fe9229ab031a83084b4cd Mon Sep 17 00:00:00 2001 From: Kelsi Date: Sun, 8 Mar 2026 21:34:31 -0700 Subject: [PATCH] Set native-focused FSR defaults and reorder quality UI --- include/rendering/renderer.hpp | 8 ++++---- include/ui/game_screen.hpp | 6 +++--- src/ui/game_screen.cpp | 15 ++++++++++++--- 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/include/rendering/renderer.hpp b/include/rendering/renderer.hpp index f509f5fd..91ba6a8d 100644 --- a/include/rendering/renderer.hpp +++ b/include/rendering/renderer.hpp @@ -268,7 +268,7 @@ public: // FSR (FidelityFX Super Resolution) upscaling void setFSREnabled(bool enabled); bool isFSREnabled() const { return fsr_.enabled; } - void setFSRQuality(float scaleFactor); // 0.50=Perf, 0.59=Balanced, 0.67=Quality, 0.77=UltraQuality + void setFSRQuality(float scaleFactor); // 0.59=Balanced, 0.67=Quality, 0.77=UltraQuality, 1.00=Native void setFSRSharpness(float sharpness); // 0.0 - 2.0 float getFSRScaleFactor() const { return fsr_.scaleFactor; } float getFSRSharpness() const { return fsr_.sharpness; } @@ -353,8 +353,8 @@ private: struct FSRState { bool enabled = false; bool needsRecreate = false; - float scaleFactor = 0.77f; // Ultra Quality default - float sharpness = 0.5f; + float scaleFactor = 1.00f; // Native default + float sharpness = 1.6f; uint32_t internalWidth = 0; uint32_t internalHeight = 0; @@ -429,7 +429,7 @@ private: uint32_t frameIndex = 0; bool needsHistoryReset = true; bool useAmdBackend = false; - float jitterSign = 0.40f; + float jitterSign = 0.38f; float motionVecScaleX = 1.0f; float motionVecScaleY = 1.0f; #if WOWEE_HAS_AMD_FSR2 diff --git a/include/ui/game_screen.hpp b/include/ui/game_screen.hpp index 2bfb64dc..284e241a 100644 --- a/include/ui/game_screen.hpp +++ b/include/ui/game_screen.hpp @@ -118,9 +118,9 @@ private: int pendingPOMQuality = 1; // 0=Low(16), 1=Medium(32), 2=High(64) bool pendingFSR = false; int pendingUpscalingMode = 0; // 0=Off, 1=FSR1, 2=FSR2 - int pendingFSRQuality = 0; // 0=UltraQuality, 1=Quality, 2=Balanced, 3=Native(100%) - float pendingFSRSharpness = 0.5f; - float pendingFSR2JitterSign = 0.40f; + int pendingFSRQuality = 3; // 0=UltraQuality, 1=Quality, 2=Balanced, 3=Native(100%) + float pendingFSRSharpness = 1.6f; + float pendingFSR2JitterSign = 0.38f; float pendingFSR2MotionVecScaleX = 1.0f; float pendingFSR2MotionVecScaleY = 1.0f; bool fsrSettingsApplied_ = false; diff --git a/src/ui/game_screen.cpp b/src/ui/game_screen.cpp index b444777b..6f7f0969 100644 --- a/src/ui/game_screen.cpp +++ b/src/ui/game_screen.cpp @@ -6337,10 +6337,19 @@ void GameScreen::renderSettingsWindow() { ImGui::TextDisabled("FSR2 backend: %s", renderer->isAmdFsr2SdkAvailable() ? "AMD FidelityFX SDK" : "Internal fallback"); } - const char* fsrQualityLabels[] = { "Ultra Quality (77%)", "Quality (67%)", "Balanced (59%)", "Native (100%)" }; + const char* fsrQualityLabels[] = { "Native (100%)", "Ultra Quality (77%)", "Quality (67%)", "Balanced (59%)" }; static const float fsrScaleFactors[] = { 0.77f, 0.67f, 0.59f, 1.00f }; + static const int displayToInternal[] = { 3, 0, 1, 2 }; pendingFSRQuality = std::clamp(pendingFSRQuality, 0, 3); - if (ImGui::Combo("FSR Quality", &pendingFSRQuality, fsrQualityLabels, 4)) { + int fsrQualityDisplay = 0; + for (int i = 0; i < 4; ++i) { + if (displayToInternal[i] == pendingFSRQuality) { + fsrQualityDisplay = i; + break; + } + } + if (ImGui::Combo("FSR Quality", &fsrQualityDisplay, fsrQualityLabels, 4)) { + pendingFSRQuality = displayToInternal[fsrQualityDisplay]; if (renderer) renderer->setFSRQuality(fsrScaleFactors[pendingFSRQuality]); saveSettings(); } @@ -6359,7 +6368,7 @@ void GameScreen::renderSettingsWindow() { } saveSettings(); } - ImGui::TextDisabled("Tip: 0.40 is the current recommended default."); + ImGui::TextDisabled("Tip: 0.38 is the current recommended default."); } } }