diff --git a/OptiScaler/backends/dlss/DLSSFeature_Dx12.cpp b/OptiScaler/backends/dlss/DLSSFeature_Dx12.cpp index 703acb34..169c52cd 100644 --- a/OptiScaler/backends/dlss/DLSSFeature_Dx12.cpp +++ b/OptiScaler/backends/dlss/DLSSFeature_Dx12.cpp @@ -155,23 +155,6 @@ bool DLSSFeatureDx12::Evaluate(ID3D12GraphicsCommandList* InCommandList, const N if (_EvaluateFeature != nullptr) { - if (Config::Instance()->changeRCAS) - { - if (RCAS != nullptr && RCAS.get() != nullptr) - { - spdlog::trace("DLSSFeatureDx12::Evaluate sleeping before CAS.reset() for 250ms"); - std::this_thread::sleep_for(std::chrono::milliseconds(250)); - RCAS.reset(); - } - else - { - Config::Instance()->changeRCAS = false; - spdlog::trace("DLSSFeatureDx12::Evaluate sleeping before CAS creation for 250ms"); - std::this_thread::sleep_for(std::chrono::milliseconds(250)); - RCAS = std::make_unique("RCAS", Device); - } - } - ProcessEvaluateParams(InParameters); ID3D12Resource* paramOutput = nullptr; diff --git a/OptiScaler/backends/fsr2/FSR2Feature_Dx11On12.cpp b/OptiScaler/backends/fsr2/FSR2Feature_Dx11On12.cpp index 49581ceb..9728d2f5 100644 --- a/OptiScaler/backends/fsr2/FSR2Feature_Dx11On12.cpp +++ b/OptiScaler/backends/fsr2/FSR2Feature_Dx11On12.cpp @@ -134,23 +134,6 @@ bool FSR2FeatureDx11on12::Evaluate(ID3D11DeviceContext* InDeviceContext, const N Dx11DeviceContext = dc; } - if (Config::Instance()->changeRCAS) - { - if (RCAS != nullptr && RCAS.get() != nullptr) - { - spdlog::trace("FSR2FeatureDx11on12::Evaluate sleeping before RCAS.reset() for 250ms"); - std::this_thread::sleep_for(std::chrono::milliseconds(250)); - RCAS.reset(); - } - else - { - Config::Instance()->changeRCAS = false; - spdlog::trace("FSR2FeatureDx11on12::Evaluate sleeping before RCAS creation for 250ms"); - std::this_thread::sleep_for(std::chrono::milliseconds(250)); - RCAS = std::make_unique("RCAS", Dx12Device); - } - } - FfxFsr2DispatchDescription params{}; InParameters->Get(NVSDK_NGX_Parameter_Jitter_Offset_X, ¶ms.jitterOffset.x); diff --git a/OptiScaler/backends/fsr2_212/FSR2Feature_Dx11On12_212.cpp b/OptiScaler/backends/fsr2_212/FSR2Feature_Dx11On12_212.cpp index 7ed1e42c..cab80ba0 100644 --- a/OptiScaler/backends/fsr2_212/FSR2Feature_Dx11On12_212.cpp +++ b/OptiScaler/backends/fsr2_212/FSR2Feature_Dx11On12_212.cpp @@ -132,23 +132,6 @@ bool FSR2FeatureDx11on12_212::Evaluate(ID3D11DeviceContext* InDeviceContext, con Dx11DeviceContext = dc; } - if (Config::Instance()->changeRCAS) - { - if (RCAS != nullptr && RCAS.get() != nullptr) - { - spdlog::trace("FSR2FeatureDx11on12_212::Evaluate sleeping before RCAS.reset() for 250ms"); - std::this_thread::sleep_for(std::chrono::milliseconds(250)); - RCAS.reset(); - } - else - { - Config::Instance()->changeRCAS = false; - spdlog::trace("FSR2FeatureDx11on12_212::Evaluate sleeping before RCAS creation for 250ms"); - std::this_thread::sleep_for(std::chrono::milliseconds(250)); - RCAS = std::make_unique("RCAS", Dx12Device); - } - } - Fsr212::FfxFsr2DispatchDescription params{}; InParameters->Get(NVSDK_NGX_Parameter_Jitter_Offset_X, ¶ms.jitterOffset.x); diff --git a/OptiScaler/backends/xess/XeSSFeature_Dx11.cpp b/OptiScaler/backends/xess/XeSSFeature_Dx11.cpp index 95f4058f..eb261ce0 100644 --- a/OptiScaler/backends/xess/XeSSFeature_Dx11.cpp +++ b/OptiScaler/backends/xess/XeSSFeature_Dx11.cpp @@ -167,23 +167,6 @@ bool XeSSFeatureDx11::Evaluate(ID3D11DeviceContext* InDeviceContext, const NVSDK dumpCount += Config::Instance()->xessDebugFrames; } - if (Config::Instance()->changeRCAS) - { - if (RCAS != nullptr && RCAS.get() != nullptr) - { - spdlog::trace("XeSSFeatureDx11::Evaluate sleeping before CAS.reset() for 250ms"); - std::this_thread::sleep_for(std::chrono::milliseconds(250)); - RCAS.reset(); - } - else - { - Config::Instance()->changeRCAS = false; - spdlog::trace("XeSSFeatureDx11::Evaluate sleeping before CAS creation for 250ms"); - std::this_thread::sleep_for(std::chrono::milliseconds(250)); - RCAS = std::make_unique("RCAS", Dx12Device); - } - } - // creatimg params for XeSS xess_result_t xessResult; xess_d3d12_execute_params_t params{}; @@ -259,7 +242,7 @@ bool XeSSFeatureDx11::Evaluate(ID3D11DeviceContext* InDeviceContext, const NVSDK // RCAS if (!Config::Instance()->changeRCAS && Config::Instance()->RcasEnabled.value_or(true) && - sharpness > 0.0f && + (sharpness > 0.0f || Config::Instance()->MotionSharpnessEnabled.value_or(false)) && RCAS != nullptr && RCAS.get() != nullptr && RCAS->CreateBufferResource(Dx12Device, params.pOutputTexture, D3D12_RESOURCE_STATE_UNORDERED_ACCESS)) { @@ -326,13 +309,13 @@ bool XeSSFeatureDx11::Evaluate(ID3D11DeviceContext* InDeviceContext, const NVSDK RCAS != nullptr && RCAS.get() != nullptr) { spdlog::debug("XeSSFeatureDx11::Evaluate Apply CAS"); + if (params.pOutputTexture != RCAS->Buffer()) ResourceBarrier(Dx12CommandList, params.pOutputTexture, D3D12_RESOURCE_STATE_UNORDERED_ACCESS, D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE); RCAS->SetBufferState(Dx12CommandList, D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE); RcasConstants rcasConstants{}; - rcasConstants.Sharpness = sharpness; rcasConstants.DisplayWidth = DisplayWidth(); rcasConstants.DisplayHeight = DisplayHeight(); diff --git a/OptiScaler/backends/xess/XeSSFeature_Dx12.cpp b/OptiScaler/backends/xess/XeSSFeature_Dx12.cpp index 090c37a4..92400d92 100644 --- a/OptiScaler/backends/xess/XeSSFeature_Dx12.cpp +++ b/OptiScaler/backends/xess/XeSSFeature_Dx12.cpp @@ -55,23 +55,6 @@ bool XeSSFeatureDx12::Evaluate(ID3D12GraphicsCommandList* InCommandList, const N dumpCount += Config::Instance()->xessDebugFrames; } - if (Config::Instance()->changeRCAS) - { - if (RCAS != nullptr && RCAS.get() != nullptr) - { - spdlog::trace("XeSSFeatureDx12::Evaluate sleeping before RCAS.reset() for 250ms"); - std::this_thread::sleep_for(std::chrono::milliseconds(250)); - RCAS.reset(); - } - else - { - Config::Instance()->changeRCAS = false; - spdlog::trace("XeSSFeatureDx12::Evaluate sleeping before CAS creation for 250ms"); - std::this_thread::sleep_for(std::chrono::milliseconds(250)); - RCAS = std::make_unique("RCAS", Device); - } - } - xess_result_t xessResult; xess_d3d12_execute_params_t params{};