mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-05-03 08:03:50 +00:00
Add startup FSR2 safety fallback to prevent load hangs
This commit is contained in:
parent
ad2915ce9e
commit
38c55e4f37
1 changed files with 19 additions and 5 deletions
|
|
@ -324,14 +324,28 @@ void GameScreen::render(game::GameHandler& gameHandler) {
|
||||||
static const float fsrScales[] = { 0.77f, 0.67f, 0.59f, 0.50f };
|
static const float fsrScales[] = { 0.77f, 0.67f, 0.59f, 0.50f };
|
||||||
renderer->setFSRQuality(fsrScales[pendingFSRQuality]);
|
renderer->setFSRQuality(fsrScales[pendingFSRQuality]);
|
||||||
renderer->setFSRSharpness(pendingFSRSharpness);
|
renderer->setFSRSharpness(pendingFSRSharpness);
|
||||||
// FSR2 can stall on some drivers during world-load transitions.
|
// Safety fallback: persisted FSR2 can still hang on some systems during startup.
|
||||||
// Defer persisted FSR2 activation until fully in world.
|
// Require explicit opt-in for startup FSR2; otherwise fall back to FSR1.
|
||||||
if (pendingUpscalingMode == 2 && gameHandler.getState() != game::WorldState::IN_WORLD) {
|
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.
|
||||||
|
if (effectiveMode == 2 && gameHandler.getState() != game::WorldState::IN_WORLD) {
|
||||||
renderer->setFSREnabled(false);
|
renderer->setFSREnabled(false);
|
||||||
renderer->setFSR2Enabled(false);
|
renderer->setFSR2Enabled(false);
|
||||||
} else {
|
} else {
|
||||||
renderer->setFSREnabled(pendingUpscalingMode == 1);
|
renderer->setFSREnabled(effectiveMode == 1);
|
||||||
renderer->setFSR2Enabled(pendingUpscalingMode == 2);
|
renderer->setFSR2Enabled(effectiveMode == 2);
|
||||||
fsrSettingsApplied_ = true;
|
fsrSettingsApplied_ = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue