From 3e73ff61216897fe5c01e186d59302f968f71ee2 Mon Sep 17 00:00:00 2001 From: cdozdil Date: Sat, 28 Mar 2026 11:35:54 +0300 Subject: [PATCH] Enable LowRes MV's flag when using NativeAA + OutputScaling --- OptiScaler/Util.cpp | 2 +- OptiScaler/upscalers/IFeature.cpp | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/OptiScaler/Util.cpp b/OptiScaler/Util.cpp index 387ec481..7be607bf 100644 --- a/OptiScaler/Util.cpp +++ b/OptiScaler/Util.cpp @@ -587,6 +587,6 @@ void Util::GetDeviceRemovedReason(ID3D12Device* pDevice) break; default: - LOG_ERROR("Device removed reason: Unknown ({:X})", reason); + LOG_ERROR("Device removed reason: Unknown ({:X})", (UINT) reason); } } diff --git a/OptiScaler/upscalers/IFeature.cpp b/OptiScaler/upscalers/IFeature.cpp index 5566f9a4..bfe81ab5 100644 --- a/OptiScaler/upscalers/IFeature.cpp +++ b/OptiScaler/upscalers/IFeature.cpp @@ -65,7 +65,6 @@ bool IFeature::SetInitParameters(NVSDK_NGX_Parameter* InParameters) } else { - _initFlags.LowResMV = _featureFlags & NVSDK_NGX_DLSS_Feature_Flags_MVLowRes; } @@ -162,6 +161,15 @@ bool IFeature::SetInitParameters(NVSDK_NGX_Parameter* InParameters) LOG_INFO("Render Resolution: {0}x{1}, Display Resolution {2}x{3}, Quality: {4}", _renderWidth, _renderHeight, _displayWidth, _displayHeight, pqValue); + // If output scaling is enabled and render res is equal to display res, enable low res MVs + // because we will use display res MV as render res and upscale with it + if (Config::Instance()->OutputScalingEnabled.value_or_default() && !_initFlags.LowResMV && + _renderWidth == _displayWidth) + { + LOG_INFO("Output Scaling is active with render size equal to display size, enabling low res MVs"); + _initFlags.LowResMV = true; + } + return true; }