Better FSR upscaler name selection

This commit is contained in:
cdozdil
2026-02-26 22:09:52 +03:00
parent 0779590aeb
commit c0f8565e46
3 changed files with 20 additions and 5 deletions
+1
View File
@@ -198,6 +198,7 @@ class State
// Other checks
bool isRunningOnNvidia = false;
std::optional<bool> isRunningOnRDNA4;
bool isPascalOrOlder = false;
bool isDxgiMode = false;
bool isD3D12Mode = false;
+10 -2
View File
@@ -133,7 +133,7 @@ std::vector<std::filesystem::path> GetDriverStore()
void CheckForGPU()
{
if (Config::Instance()->Fsr4Update.has_value())
if (State::Instance().isRunningOnRDNA4.has_value())
return;
// Call init for any case
@@ -177,7 +177,12 @@ void CheckForGPU()
{
// If GPU Name contains 90XX or GFX12 (Linux) always set it to true
if (szName.find(L" 90") != std::wstring::npos || szName.find(L" GFX12") != std::wstring::npos)
Config::Instance()->Fsr4Update.set_volatile_value(true);
{
if (!Config::Instance()->Fsr4Update.has_value())
Config::Instance()->Fsr4Update.set_volatile_value(true);
State::Instance().isRunningOnRDNA4 = true;
}
}
}
else
@@ -193,6 +198,9 @@ void CheckForGPU()
factory->Release();
factory = nullptr;
if (!State::Instance().isRunningOnRDNA4.has_value())
State::Instance().isRunningOnRDNA4 = false;
LOG_INFO("Fsr4Update: {}", Config::Instance()->Fsr4Update.value_or_default());
}
+9 -3
View File
@@ -1025,7 +1025,9 @@ void MenuCommon::GetCurrentBackendInfo(const API api, std::string* code, std::st
void MenuCommon::AddDx11Backends(std::string* code, std::string* name)
{
std::string selectedUpscalerName = "";
std::string fsr3xName = Config::Instance()->Fsr4Update.value_or_default() ? "FSR 3.X/4 w/Dx12" : "FSR 3.X w/Dx12";
bool fsr4Possible =
Config::Instance()->Fsr4Update.value_or_default() || State::Instance().isRunningOnRDNA4.value_or(false);
std::string fsr3xName = fsr4Possible ? "FSR 3.X/4 w/Dx12" : "FSR 3.X w/Dx12";
if (State::Instance().newBackend == "fsr22" || (State::Instance().newBackend == "" && *code == "fsr22"))
selectedUpscalerName = "FSR 2.2.1";
@@ -1078,7 +1080,9 @@ void MenuCommon::AddDx11Backends(std::string* code, std::string* name)
void MenuCommon::AddDx12Backends(std::string* code, std::string* name)
{
std::string selectedUpscalerName = "";
std::string fsr3xName = Config::Instance()->Fsr4Update.value_or_default() ? "FSR 3.X/4" : "FSR 3.X";
bool fsr4Possible =
Config::Instance()->Fsr4Update.value_or_default() || State::Instance().isRunningOnRDNA4.value_or(false);
std::string fsr3xName = fsr4Possible ? "FSR 3.X/4 w/Dx12" : "FSR 3.X w/Dx12";
if (State::Instance().newBackend == "fsr21" || (State::Instance().newBackend == "" && *code == "fsr21"))
selectedUpscalerName = "FSR 2.1.2";
@@ -1116,7 +1120,9 @@ void MenuCommon::AddDx12Backends(std::string* code, std::string* name)
void MenuCommon::AddVulkanBackends(std::string* code, std::string* name)
{
std::string selectedUpscalerName = "";
std::string fsr3xName = Config::Instance()->Fsr4Update.value_or_default() ? "FSR 3.X/4 w/Dx12" : "FSR 3.X w/Dx12";
bool fsr4Possible =
Config::Instance()->Fsr4Update.value_or_default() || State::Instance().isRunningOnRDNA4.value_or(false);
std::string fsr3xName = fsr4Possible ? "FSR 3.X/4 w/Dx12" : "FSR 3.X w/Dx12";
if (State::Instance().newBackend == "fsr21" || (State::Instance().newBackend == "" && *code == "fsr21"))
selectedUpscalerName = "FSR 2.1.2";