@@ -230,7 +230,7 @@ bool FSR2FeatureDx11on12::Evaluate(ID3D11DeviceContext* InDeviceContext, NVSDK_N
230
230
{
231
231
Bias->SetBufferState (Dx12CommandList, D3D12_RESOURCE_STATE_UNORDERED_ACCESS);
232
232
233
- if (Config::Instance ()->DlssReactiveMaskBias .value_or (0 .45f ) > 0 .0f &&
233
+ if (Config::Instance ()->DlssReactiveMaskBias .value_or (0 .45f ) > 0 .0f &&
234
234
Bias->Dispatch (Dx12Device, Dx12CommandList, dx11Reactive.Dx12Resource , Config::Instance ()->DlssReactiveMaskBias .value_or (0 .45f ), Bias->Buffer ()))
235
235
{
236
236
Bias->SetBufferState (Dx12CommandList, D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE);
@@ -649,19 +649,36 @@ bool FSR2FeatureDx11on12::InitFSR2(const NVSDK_NGX_Parameter* InParameters)
649
649
_targetHeight = DisplayHeight ();
650
650
}
651
651
652
+ // extended limits changes how resolution
652
653
if (Config::Instance ()->ExtendedLimits .value_or (false ))
653
654
{
654
655
_contextDesc.maxRenderSize .width = RenderWidth () < TargetWidth () ? TargetWidth () : RenderWidth ();
655
656
_contextDesc.maxRenderSize .height = RenderHeight () < TargetHeight () ? TargetHeight () : RenderHeight ();
657
+
658
+ // if output scaling active let it to handle downsampling
659
+ if (Config::Instance ()->OutputScalingEnabled .value_or (false ) && !Config::Instance ()->DisplayResolution .value_or (false ))
660
+ {
661
+ _contextDesc.displaySize .width = _contextDesc.maxRenderSize .width ;
662
+ _contextDesc.displaySize .height = _contextDesc.maxRenderSize .height ;
663
+
664
+ // update target res
665
+ _targetWidth = _contextDesc.displaySize .width ;
666
+ _targetHeight = _contextDesc.displaySize .height ;
667
+ }
668
+ else
669
+ {
670
+ _contextDesc.displaySize .width = TargetWidth ();
671
+ _contextDesc.displaySize .height = TargetHeight ();
672
+ }
656
673
}
657
674
else
658
675
{
659
676
_contextDesc.maxRenderSize .width = TargetWidth ();
660
677
_contextDesc.maxRenderSize .height = TargetHeight ();
678
+ _contextDesc.displaySize .width = TargetWidth ();
679
+ _contextDesc.displaySize .height = TargetHeight ();
661
680
}
662
681
663
- _contextDesc.displaySize .width = TargetWidth ();
664
- _contextDesc.displaySize .height = TargetHeight ();
665
682
666
683
#if _DEBUG
667
684
_contextDesc.flags |= FFX_FSR2_ENABLE_DEBUG_CHECKING;
0 commit comments