From 327d7158f2dabce2e284e5fecea2480f32dc6580 Mon Sep 17 00:00:00 2001 From: cdozdila Date: Tue, 29 Apr 2025 22:37:05 +0300 Subject: [PATCH] Load and save half & full sync options too --- OptiScaler.ini | 18 +++++++++++++----- OptiScaler/Config.cpp | 6 ++++++ OptiScaler/inputs/NVNGX_DLSS_Dx12.cpp | 1 - 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/OptiScaler.ini b/OptiScaler.ini index 13883c71..d1d7c200 100644 --- a/OptiScaler.ini +++ b/OptiScaler.ini @@ -66,6 +66,19 @@ HUDFixExtended=auto ; true or false - Default (auto) is false HUDFixImmadiate=auto +; Closes Hudfix Cmdlist after Swapchain callback +; Setting it false most probably cause occasional garbling +; true or false - Default (auto) is true +HudFixCloseAfterCallback=auto + +; Release present sync mutex after presenting 1 frame +; true or false - Default (auto) is false +HudfixHalfSync=auto + +; Release present sync mutex after presenting 2 frames +; true or false - Default (auto) is false +HudfixFullSync=auto + ; Defines FG rectangle ; integer value - Default (auto) is whole screen RectLeft=auto @@ -98,11 +111,6 @@ DepthScaleMax=auto ; true or false - Default (auto) is true MakeMVCopy=auto -; Closes Hudfix Cmdlist after Swapchain callback -; Setting it false most probably cause occasional garbling -; true or false - Default (auto) is true -HudFixCloseAfterCallback=auto - ; Enables usage of mutex for FG swapchain present calls ; Disabling it might improve performance in cost of stability ; true or false - Default (auto) is true diff --git a/OptiScaler/Config.cpp b/OptiScaler/Config.cpp index 0a3b78f2..b65183bb 100644 --- a/OptiScaler/Config.cpp +++ b/OptiScaler/Config.cpp @@ -92,6 +92,9 @@ bool Config::Reload(std::filesystem::path iniPath) FGFPTAllowHybridSpin.set_from_config(readBool("OptiFG", "FPTHybridSpin")); FGFPTHybridSpinTime.set_from_config(readInt("OptiFG", "FPTHybridSpinTime")); FGFPTAllowWaitForSingleObjectOnFence.set_from_config(readInt("OptiFG", "FPTWaitForSingleObjectOnFence")); + + FGHudfixHalfSync.set_from_config(readBool("OptiFG", "HudfixHalfSync")); + FGHudfixFullSync.set_from_config(readBool("OptiFG", "HudfixFullSync")); } // Framerate @@ -601,6 +604,9 @@ bool Config::SaveIni() ini.SetValue("OptiFG", "FPTHybridSpin", GetBoolValue(Instance()->FGFPTAllowHybridSpin.value_for_config()).c_str()); ini.SetValue("OptiFG", "FPTHybridSpinTime", GetIntValue(Instance()->FGFPTHybridSpinTime.value_for_config()).c_str()); ini.SetValue("OptiFG", "FPTWaitForSingleObjectOnFence", GetBoolValue(Instance()->FGFPTAllowWaitForSingleObjectOnFence.value_for_config()).c_str()); + + ini.SetValue("OptiFG", "HudfixHalfSync", GetBoolValue(Instance()->FGHudfixHalfSync.value_for_config()).c_str()); + ini.SetValue("OptiFG", "HudfixFullSync", GetBoolValue(Instance()->FGHudfixFullSync.value_for_config()).c_str()); } // Framerate diff --git a/OptiScaler/inputs/NVNGX_DLSS_Dx12.cpp b/OptiScaler/inputs/NVNGX_DLSS_Dx12.cpp index 013f23d6..5fbffa0e 100644 --- a/OptiScaler/inputs/NVNGX_DLSS_Dx12.cpp +++ b/OptiScaler/inputs/NVNGX_DLSS_Dx12.cpp @@ -1111,7 +1111,6 @@ NVSDK_NGX_API NVSDK_NGX_Result NVSDK_NGX_D3D12_EvaluateFeature(ID3D12GraphicsCom // DLSS Enabler { - // DLSS Enabler check int deAvail = 0; if (!State::Instance().enablerAvailable && InParameters->Get("DLSSEnabler.Available", &deAvail) == NVSDK_NGX_Result_Success) {