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
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

View file

@ -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;

View file

@ -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.");
}
}
}