diff --git a/OptiScaler/backends/fsr2/FSR2Feature_Dx11.cpp b/OptiScaler/backends/fsr2/FSR2Feature_Dx11.cpp index 3e608282..61a9a8fb 100644 --- a/OptiScaler/backends/fsr2/FSR2Feature_Dx11.cpp +++ b/OptiScaler/backends/fsr2/FSR2Feature_Dx11.cpp @@ -561,8 +561,8 @@ bool FSR2FeatureDx11::Evaluate(ID3D11DeviceContext* InContext, NVSDK_NGX_Paramet if (InParameters->Get(NVSDK_NGX_Parameter_FrameTimeDeltaInMsec, ¶ms.frameTimeDelta) != NVSDK_NGX_Result_Success || params.frameTimeDelta < 1.0f) params.frameTimeDelta = (float)GetDeltaTime(); - params.preExposure = 1.0f; - InParameters->Get(NVSDK_NGX_Parameter_DLSS_Pre_Exposure, ¶ms.preExposure); + if (InParameters->Get(NVSDK_NGX_Parameter_DLSS_Pre_Exposure, ¶ms.preExposure) != NVSDK_NGX_Result_Success) + params.preExposure = 1.0f; LOG_DEBUG("Dispatch!!"); auto result = ffxFsr2ContextDispatch(&_context, ¶ms); diff --git a/OptiScaler/backends/fsr2/FSR2Feature_Dx11On12.cpp b/OptiScaler/backends/fsr2/FSR2Feature_Dx11On12.cpp index a0d9291b..c92a3e6e 100644 --- a/OptiScaler/backends/fsr2/FSR2Feature_Dx11On12.cpp +++ b/OptiScaler/backends/fsr2/FSR2Feature_Dx11On12.cpp @@ -295,8 +295,8 @@ bool FSR2FeatureDx11on12::Evaluate(ID3D11DeviceContext* InDeviceContext, NVSDK_N if (InParameters->Get(NVSDK_NGX_Parameter_FrameTimeDeltaInMsec, ¶ms.frameTimeDelta) != NVSDK_NGX_Result_Success || params.frameTimeDelta < 1.0f) params.frameTimeDelta = (float)GetDeltaTime(); - params.preExposure = 1.0f; - InParameters->Get(NVSDK_NGX_Parameter_DLSS_Pre_Exposure, ¶ms.preExposure); + if (InParameters->Get(NVSDK_NGX_Parameter_DLSS_Pre_Exposure, ¶ms.preExposure) != NVSDK_NGX_Result_Success) + params.preExposure = 1.0f; LOG_DEBUG("Dispatch!!"); auto ffxresult = ffxFsr2ContextDispatch(&_context, ¶ms); diff --git a/OptiScaler/backends/fsr2/FSR2Feature_Dx12.cpp b/OptiScaler/backends/fsr2/FSR2Feature_Dx12.cpp index 9ec09cc4..664c3e2d 100644 --- a/OptiScaler/backends/fsr2/FSR2Feature_Dx12.cpp +++ b/OptiScaler/backends/fsr2/FSR2Feature_Dx12.cpp @@ -345,8 +345,8 @@ bool FSR2FeatureDx12::Evaluate(ID3D12GraphicsCommandList* InCommandList, NVSDK_N params.frameTimeDelta = (float)GetDeltaTime(); } - params.preExposure = 1.0f; - InParameters->Get(NVSDK_NGX_Parameter_DLSS_Pre_Exposure, ¶ms.preExposure); + if (InParameters->Get(NVSDK_NGX_Parameter_DLSS_Pre_Exposure, ¶ms.preExposure) != NVSDK_NGX_Result_Success) + params.preExposure = 1.0f; LOG_DEBUG("Dispatch!!"); auto result = ffxFsr2ContextDispatch(&_context, ¶ms); diff --git a/OptiScaler/backends/fsr2/FSR2Feature_Vk.cpp b/OptiScaler/backends/fsr2/FSR2Feature_Vk.cpp index ab3ef353..a05241a5 100644 --- a/OptiScaler/backends/fsr2/FSR2Feature_Vk.cpp +++ b/OptiScaler/backends/fsr2/FSR2Feature_Vk.cpp @@ -374,9 +374,8 @@ bool FSR2FeatureVk::Evaluate(VkCommandBuffer InCmdBuffer, NVSDK_NGX_Parameter* I if (InParameters->Get(NVSDK_NGX_Parameter_FrameTimeDeltaInMsec, ¶ms.frameTimeDelta) != NVSDK_NGX_Result_Success || params.frameTimeDelta < 1.0f) params.frameTimeDelta = (float)GetDeltaTime(); - params.preExposure = 1.0f; - InParameters->Get(NVSDK_NGX_Parameter_DLSS_Pre_Exposure, ¶ms.preExposure); - + if (InParameters->Get(NVSDK_NGX_Parameter_DLSS_Pre_Exposure, ¶ms.preExposure) != NVSDK_NGX_Result_Success) + params.preExposure = 1.0f; LOG_DEBUG("Dispatch!!"); auto result = ffxFsr2ContextDispatch(&_context, ¶ms); diff --git a/OptiScaler/backends/fsr2_212/FSR2Feature_Dx11On12_212.cpp b/OptiScaler/backends/fsr2_212/FSR2Feature_Dx11On12_212.cpp index e0379aef..ac07e96a 100644 --- a/OptiScaler/backends/fsr2_212/FSR2Feature_Dx11On12_212.cpp +++ b/OptiScaler/backends/fsr2_212/FSR2Feature_Dx11On12_212.cpp @@ -300,8 +300,8 @@ bool FSR2FeatureDx11on12_212::Evaluate(ID3D11DeviceContext* InDeviceContext, NVS if (InParameters->Get(NVSDK_NGX_Parameter_FrameTimeDeltaInMsec, ¶ms.frameTimeDelta) != NVSDK_NGX_Result_Success || params.frameTimeDelta < 1.0f) params.frameTimeDelta = (float)GetDeltaTime(); - params.preExposure = 1.0f; - InParameters->Get(NVSDK_NGX_Parameter_DLSS_Pre_Exposure, ¶ms.preExposure); + if (InParameters->Get(NVSDK_NGX_Parameter_DLSS_Pre_Exposure, ¶ms.preExposure) != NVSDK_NGX_Result_Success) + params.preExposure = 1.0f; LOG_DEBUG("Dispatch!!"); auto ffxresult = Fsr212::ffxFsr2ContextDispatch212(&_context, ¶ms); diff --git a/OptiScaler/backends/fsr2_212/FSR2Feature_Dx12_212.cpp b/OptiScaler/backends/fsr2_212/FSR2Feature_Dx12_212.cpp index cbc5b7e1..b6620bf5 100644 --- a/OptiScaler/backends/fsr2_212/FSR2Feature_Dx12_212.cpp +++ b/OptiScaler/backends/fsr2_212/FSR2Feature_Dx12_212.cpp @@ -350,9 +350,8 @@ bool FSR2FeatureDx12_212::Evaluate(ID3D12GraphicsCommandList* InCommandList, NVS LOG_DEBUG("FrameTimeDeltaInMsec: {0}", params.frameTimeDelta); - params.preExposure = 1.0f; - InParameters->Get(NVSDK_NGX_Parameter_DLSS_Pre_Exposure, ¶ms.preExposure); - + if (InParameters->Get(NVSDK_NGX_Parameter_DLSS_Pre_Exposure, ¶ms.preExposure) != NVSDK_NGX_Result_Success) + params.preExposure = 1.0f; LOG_DEBUG("Dispatch!!"); auto result = Fsr212::ffxFsr2ContextDispatch212(&_context, ¶ms); diff --git a/OptiScaler/backends/fsr2_212/FSR2Feature_Vk_212.cpp b/OptiScaler/backends/fsr2_212/FSR2Feature_Vk_212.cpp index e5c756f6..fcfa4a18 100644 --- a/OptiScaler/backends/fsr2_212/FSR2Feature_Vk_212.cpp +++ b/OptiScaler/backends/fsr2_212/FSR2Feature_Vk_212.cpp @@ -416,9 +416,8 @@ bool FSR2FeatureVk212::Evaluate(VkCommandBuffer InCmdBuffer, NVSDK_NGX_Parameter if (InParameters->Get(NVSDK_NGX_Parameter_FrameTimeDeltaInMsec, ¶ms.frameTimeDelta) != NVSDK_NGX_Result_Success || params.frameTimeDelta < 1.0f) params.frameTimeDelta = (float)GetDeltaTime(); - params.preExposure = 1.0f; - InParameters->Get(NVSDK_NGX_Parameter_DLSS_Pre_Exposure, ¶ms.preExposure); - + if (InParameters->Get(NVSDK_NGX_Parameter_DLSS_Pre_Exposure, ¶ms.preExposure) != NVSDK_NGX_Result_Success) + params.preExposure = 1.0f; LOG_DEBUG("Dispatch!!"); auto result = Fsr212::ffxFsr2ContextDispatch212(&_context, ¶ms); diff --git a/OptiScaler/backends/fsr31/FSR31Feature_Dx11.cpp b/OptiScaler/backends/fsr31/FSR31Feature_Dx11.cpp index 763591bd..e0eb107d 100644 --- a/OptiScaler/backends/fsr31/FSR31Feature_Dx11.cpp +++ b/OptiScaler/backends/fsr31/FSR31Feature_Dx11.cpp @@ -431,13 +431,13 @@ bool FSR31FeatureDx11::Evaluate(ID3D11DeviceContext* DeviceContext, NVSDK_NGX_Pa LOG_DEBUG("FrameTimeDeltaInMsec: {0}", params.frameTimeDelta); - params.preExposure = 1.0f; - InParameters->Get(NVSDK_NGX_Parameter_DLSS_Pre_Exposure, ¶ms.preExposure); + if (InParameters->Get(NVSDK_NGX_Parameter_DLSS_Pre_Exposure, ¶ms.preExposure) != NVSDK_NGX_Result_Success) + params.preExposure = 1.0f; params.upscaleSize.width = TargetWidth(); params.upscaleSize.height = TargetHeight(); - if (_velocity != Config::Instance()->FsrVelocity.value_or(1.0f)) + if (Version().major >= 1 && Version().minor >= 1 && Version().patch >= 1 && _velocity != Config::Instance()->FsrVelocity.value_or(1.0f)) { _velocity = Config::Instance()->FsrVelocity.value_or(1.0f); auto result = ffxFsr3SetUpscalerConstant(&_upscalerContext, Fsr31::FfxFsr3UpscalerConfigureKey::FFX_FSR3UPSCALER_CONFIGURE_UPSCALE_KEY_FVELOCITYFACTOR, &_velocity); diff --git a/OptiScaler/backends/fsr31/FSR31Feature_Dx11On12.cpp b/OptiScaler/backends/fsr31/FSR31Feature_Dx11On12.cpp index 985e27a2..d0561ed8 100644 --- a/OptiScaler/backends/fsr31/FSR31Feature_Dx11On12.cpp +++ b/OptiScaler/backends/fsr31/FSR31Feature_Dx11On12.cpp @@ -315,10 +315,13 @@ bool FSR31FeatureDx11on12::Evaluate(ID3D11DeviceContext* InDeviceContext, NVSDK_ if (InParameters->Get(NVSDK_NGX_Parameter_FrameTimeDeltaInMsec, ¶ms.frameTimeDelta) != NVSDK_NGX_Result_Success || params.frameTimeDelta < 1.0f) params.frameTimeDelta = (float)GetDeltaTime(); - params.preExposure = 1.0f; + if (InParameters->Get(NVSDK_NGX_Parameter_DLSS_Pre_Exposure, ¶ms.preExposure) != NVSDK_NGX_Result_Success) + params.preExposure = 1.0f; + params.viewSpaceToMetersFactor = 1.0f; - if (_velocity != Config::Instance()->FsrVelocity.value_or(1.0f)) + // Version 1.1.1 check + if (Version().major >= 1 && Version().minor >= 1 && Version().patch >= 1 && _velocity != Config::Instance()->FsrVelocity.value_or(1.0f)) { _velocity = Config::Instance()->FsrVelocity.value_or(1.0f); ffxConfigureDescUpscaleKeyValue m_upscalerKeyValueConfig{}; diff --git a/OptiScaler/backends/fsr31/FSR31Feature_Dx12.cpp b/OptiScaler/backends/fsr31/FSR31Feature_Dx12.cpp index e469bebc..a48b2c85 100644 --- a/OptiScaler/backends/fsr31/FSR31Feature_Dx12.cpp +++ b/OptiScaler/backends/fsr31/FSR31Feature_Dx12.cpp @@ -376,7 +376,7 @@ bool FSR31FeatureDx12::Evaluate(ID3D12GraphicsCommandList* InCommandList, NVSDK_ if (InParameters->Get(NVSDK_NGX_Parameter_DLSS_Pre_Exposure, ¶ms.preExposure) != NVSDK_NGX_Result_Success) params.preExposure = 1.0f; - if (_velocity != Config::Instance()->FsrVelocity.value_or(1.0f)) + if (Version().major >= 1 && Version().minor >= 1 && Version().patch >= 1 && _velocity != Config::Instance()->FsrVelocity.value_or(1.0f)) { _velocity = Config::Instance()->FsrVelocity.value_or(1.0f); ffxConfigureDescUpscaleKeyValue m_upscalerKeyValueConfig{}; diff --git a/OptiScaler/backends/fsr31/FSR31Feature_Vk.cpp b/OptiScaler/backends/fsr31/FSR31Feature_Vk.cpp index 9480d9bf..a8ac92c7 100644 --- a/OptiScaler/backends/fsr31/FSR31Feature_Vk.cpp +++ b/OptiScaler/backends/fsr31/FSR31Feature_Vk.cpp @@ -446,9 +446,10 @@ bool FSR31FeatureVk::Evaluate(VkCommandBuffer InCmdBuffer, NVSDK_NGX_Parameter* if (InParameters->Get(NVSDK_NGX_Parameter_FrameTimeDeltaInMsec, ¶ms.frameTimeDelta) != NVSDK_NGX_Result_Success || params.frameTimeDelta < 1.0f) params.frameTimeDelta = (float)GetDeltaTime(); - params.preExposure = 1.0f; InParameters->Get(NVSDK_NGX_Parameter_DLSS_Pre_Exposure, ¶ms.preExposure); + if (InParameters->Get(NVSDK_NGX_Parameter_DLSS_Pre_Exposure, ¶ms.preExposure) != NVSDK_NGX_Result_Success) + params.preExposure = 1.0f; - if (_velocity != Config::Instance()->FsrVelocity.value_or(1.0f)) + if (Version().major >= 1 && Version().minor >= 1 && Version().patch >= 1 && _velocity != Config::Instance()->FsrVelocity.value_or(1.0f)) { _velocity = Config::Instance()->FsrVelocity.value_or(1.0f); ffxConfigureDescUpscaleKeyValue m_upscalerKeyValueConfig{};