From 9cf0e21fb03cb415b524613fc2ec6245b03f3400 Mon Sep 17 00:00:00 2001 From: FakeMichau <49685661+FakeMichau@users.noreply.github.com> Date: Tue, 18 Aug 2026 01:55:09 +0200 Subject: [PATCH] Try to avoid having no nvngx replacement selected when the GPU doesn't support DLSSG --- OptiScaler/menu/menu_common.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/OptiScaler/menu/menu_common.cpp b/OptiScaler/menu/menu_common.cpp index c844f8a9..0f61a67e 100644 --- a/OptiScaler/menu/menu_common.cpp +++ b/OptiScaler/menu/menu_common.cpp @@ -3197,6 +3197,20 @@ void MenuCommon::RenderFrameGenerationSelection(RenderMenuContext& ctx) ShowTooltip("What backend to use instead of the real DLSSG"); } + // Try to avoid having None selected when the gpu doesn't support DLSSG + some fallbacks + if (!supportsDlssg && (replaceFgOutputWithNvngx || showNvngxFgDowndown) && + config->FGNvngxReplacement.value_or_default() == FGNvngxReplacement::None) + { + if (state.nukemsFgFileAvailable) + config->FGNvngxReplacement.set_volatile_value(FGNvngxReplacement::Nukems); + + else if (state.artursFgFileAvailable) + config->FGNvngxReplacement.set_volatile_value(FGNvngxReplacement::Arturs); + + else if (FfxApiProxy::IsFGReady(false)) + config->FGNvngxReplacement.set_volatile_value(FGNvngxReplacement::FFX); + } + const bool nvngxFgChanged = (replaceFgOutputWithNvngx || showNvngxFgDowndown) && state.activeFgNvngx != config->FGNvngxReplacement.value_or_default(); state.fgSettingsChanged = state.activeFgOutput != config->FGOutput.value_or_default() ||