Set native-focused FSR defaults and reorder quality UI

This commit is contained in:
Kelsi 2026-03-08 21:34:31 -07:00
parent 47287a121a
commit 94ad89c764
3 changed files with 19 additions and 10 deletions

View file

@ -268,7 +268,7 @@ public:
// FSR (FidelityFX Super Resolution) upscaling // FSR (FidelityFX Super Resolution) upscaling
void setFSREnabled(bool enabled); void setFSREnabled(bool enabled);
bool isFSREnabled() const { return fsr_.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 void setFSRSharpness(float sharpness); // 0.0 - 2.0
float getFSRScaleFactor() const { return fsr_.scaleFactor; } float getFSRScaleFactor() const { return fsr_.scaleFactor; }
float getFSRSharpness() const { return fsr_.sharpness; } float getFSRSharpness() const { return fsr_.sharpness; }
@ -353,8 +353,8 @@ private:
struct FSRState { struct FSRState {
bool enabled = false; bool enabled = false;
bool needsRecreate = false; bool needsRecreate = false;
float scaleFactor = 0.77f; // Ultra Quality default float scaleFactor = 1.00f; // Native default
float sharpness = 0.5f; float sharpness = 1.6f;
uint32_t internalWidth = 0; uint32_t internalWidth = 0;
uint32_t internalHeight = 0; uint32_t internalHeight = 0;
@ -429,7 +429,7 @@ private:
uint32_t frameIndex = 0; uint32_t frameIndex = 0;
bool needsHistoryReset = true; bool needsHistoryReset = true;
bool useAmdBackend = false; bool useAmdBackend = false;
float jitterSign = 0.40f; float jitterSign = 0.38f;
float motionVecScaleX = 1.0f; float motionVecScaleX = 1.0f;
float motionVecScaleY = 1.0f; float motionVecScaleY = 1.0f;
#if WOWEE_HAS_AMD_FSR2 #if WOWEE_HAS_AMD_FSR2

View file

@ -118,9 +118,9 @@ private:
int pendingPOMQuality = 1; // 0=Low(16), 1=Medium(32), 2=High(64) int pendingPOMQuality = 1; // 0=Low(16), 1=Medium(32), 2=High(64)
bool pendingFSR = false; bool pendingFSR = false;
int pendingUpscalingMode = 0; // 0=Off, 1=FSR1, 2=FSR2 int pendingUpscalingMode = 0; // 0=Off, 1=FSR1, 2=FSR2
int pendingFSRQuality = 0; // 0=UltraQuality, 1=Quality, 2=Balanced, 3=Native(100%) int pendingFSRQuality = 3; // 0=UltraQuality, 1=Quality, 2=Balanced, 3=Native(100%)
float pendingFSRSharpness = 0.5f; float pendingFSRSharpness = 1.6f;
float pendingFSR2JitterSign = 0.40f; float pendingFSR2JitterSign = 0.38f;
float pendingFSR2MotionVecScaleX = 1.0f; float pendingFSR2MotionVecScaleX = 1.0f;
float pendingFSR2MotionVecScaleY = 1.0f; float pendingFSR2MotionVecScaleY = 1.0f;
bool fsrSettingsApplied_ = false; bool fsrSettingsApplied_ = false;

View file

@ -6337,10 +6337,19 @@ void GameScreen::renderSettingsWindow() {
ImGui::TextDisabled("FSR2 backend: %s", ImGui::TextDisabled("FSR2 backend: %s",
renderer->isAmdFsr2SdkAvailable() ? "AMD FidelityFX SDK" : "Internal fallback"); 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 float fsrScaleFactors[] = { 0.77f, 0.67f, 0.59f, 1.00f };
static const int displayToInternal[] = { 3, 0, 1, 2 };
pendingFSRQuality = std::clamp(pendingFSRQuality, 0, 3); 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]); if (renderer) renderer->setFSRQuality(fsrScaleFactors[pendingFSRQuality]);
saveSettings(); saveSettings();
} }
@ -6359,7 +6368,7 @@ void GameScreen::renderSettingsWindow() {
} }
saveSettings(); saveSettings();
} }
ImGui::TextDisabled("Tip: 0.40 is the current recommended default."); ImGui::TextDisabled("Tip: 0.38 is the current recommended default.");
} }
} }
} }