mirror of
https://github.com/optiscaler/OptiScaler.git
synced 2026-08-26 08:06:33 +00:00
Better FSR upscaler name selection
This commit is contained in:
@@ -198,6 +198,7 @@ class State
|
||||
|
||||
// Other checks
|
||||
bool isRunningOnNvidia = false;
|
||||
std::optional<bool> isRunningOnRDNA4;
|
||||
bool isPascalOrOlder = false;
|
||||
bool isDxgiMode = false;
|
||||
bool isD3D12Mode = false;
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
|
||||
@@ -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";
|
||||
|
||||
Reference in New Issue
Block a user