diff --git a/OptiScaler/Config.cpp b/OptiScaler/Config.cpp index 54ed0bd3..226168c3 100644 --- a/OptiScaler/Config.cpp +++ b/OptiScaler/Config.cpp @@ -78,8 +78,7 @@ bool Config::Reload() // Quality Overrides QualityRatioOverrideEnabled = readBool("QualityOverrides", "QualityRatioOverrideEnabled"); - - if (QualityRatioOverrideEnabled.value_or(false)) { + QualityRatio_DLAA = readFloat("QualityOverrides", "QualityRatioDLAA"); QualityRatio_UltraQuality = readFloat("QualityOverrides", "QualityRatioUltraQuality"); QualityRatio_Quality = readFloat("QualityOverrides", "QualityRatioQuality"); QualityRatio_Balanced = readFloat("QualityOverrides", "QualityRatioBalanced"); diff --git a/OptiScaler/Config.h b/OptiScaler/Config.h index 7e391080..4caedf05 100644 --- a/OptiScaler/Config.h +++ b/OptiScaler/Config.h @@ -65,6 +65,7 @@ public: // Quality Overrides std::optional QualityRatioOverrideEnabled; + std::optional QualityRatio_DLAA; std::optional QualityRatio_UltraQuality; std::optional QualityRatio_Quality; std::optional QualityRatio_Balanced; diff --git a/OptiScaler/NVNGX_Parameter.h b/OptiScaler/NVNGX_Parameter.h index b1c6e9d1..a8238893 100644 --- a/OptiScaler/NVNGX_Parameter.h +++ b/OptiScaler/NVNGX_Parameter.h @@ -34,7 +34,7 @@ inline std::optional GetQualityOverrideRatio(const NVSDK_NGX_PerfQuality_ output = Config::Instance()->QualityRatio_UltraQuality.value_or(1.3); break; case NVSDK_NGX_PerfQuality_Value_DLAA: - output = 1.0f; + output = Config::Instance()->QualityRatio_DLAA.value_or(1.0); break; default: spdlog::warn("GetQualityOverrideRatio: Unknown quality: {0}", (int)input); diff --git a/OptiScaler/imgui/Imgui_Base.cpp b/OptiScaler/imgui/Imgui_Base.cpp index eb022ba8..d4bb1270 100644 --- a/OptiScaler/imgui/Imgui_Base.cpp +++ b/OptiScaler/imgui/Imgui_Base.cpp @@ -768,24 +768,28 @@ void Imgui_Base::RenderMenu() ImGui::BeginDisabled(!Config::Instance()->QualityRatioOverrideEnabled.value_or(false)); + float qDlaa = Config::Instance()->QualityRatio_DLAA.value_or(1.3f); + if (ImGui::SliderFloat("DLAA", &qDlaa, 1.0f, 3.0f, "%.3f", ImGuiSliderFlags_NoRoundToFormat)) + Config::Instance()->QualityRatio_DLAA = qDlaa; + float qUq = Config::Instance()->QualityRatio_UltraQuality.value_or(1.3f); - ImGui::SliderFloat("Ultra Quality", &qUq, 1.0f, 3.0f, "%.3f", ImGuiSliderFlags_NoRoundToFormat); + if (ImGui::SliderFloat("Ultra Quality", &qUq, 1.0f, 3.0f, "%.3f", ImGuiSliderFlags_NoRoundToFormat)) Config::Instance()->QualityRatio_UltraQuality = qUq; float qQ = Config::Instance()->QualityRatio_Quality.value_or(1.5f); - ImGui::SliderFloat("Quality", &qQ, 1.0f, 3.0f, "%.3f", ImGuiSliderFlags_NoRoundToFormat); + if (ImGui::SliderFloat("Quality", &qQ, 1.0f, 3.0f, "%.3f", ImGuiSliderFlags_NoRoundToFormat)) Config::Instance()->QualityRatio_Quality = qQ; float qB = Config::Instance()->QualityRatio_Balanced.value_or(1.7f); - ImGui::SliderFloat("Balanced", &qB, 1.0f, 3.0f, "%.3f", ImGuiSliderFlags_NoRoundToFormat); + if (ImGui::SliderFloat("Balanced", &qB, 1.0f, 3.0f, "%.3f", ImGuiSliderFlags_NoRoundToFormat)) Config::Instance()->QualityRatio_Balanced = qB; float qP = Config::Instance()->QualityRatio_Performance.value_or(2.0f); - ImGui::SliderFloat("Performance", &qP, 1.0f, 3.0f, "%.3f", ImGuiSliderFlags_NoRoundToFormat); + if (ImGui::SliderFloat("Performance", &qP, 1.0f, 3.0f, "%.3f", ImGuiSliderFlags_NoRoundToFormat)) Config::Instance()->QualityRatio_Performance = qP; float qUp = Config::Instance()->QualityRatio_UltraPerformance.value_or(3.0f); - ImGui::SliderFloat("Ultra Performance", &qUp, 1.0f, 3.0f, "%.3f", ImGuiSliderFlags_NoRoundToFormat); + if (ImGui::SliderFloat("Ultra Performance", &qUp, 1.0f, 3.0f, "%.3f", ImGuiSliderFlags_NoRoundToFormat)) Config::Instance()->QualityRatio_UltraPerformance = qUp; ImGui::EndDisabled();