diff --git a/OptiScaler/backends/dlss/DLSSFeature_Dx11.cpp b/OptiScaler/backends/dlss/DLSSFeature_Dx11.cpp index f9adce73..d7213a83 100644 --- a/OptiScaler/backends/dlss/DLSSFeature_Dx11.cpp +++ b/OptiScaler/backends/dlss/DLSSFeature_Dx11.cpp @@ -106,16 +106,28 @@ bool DLSSFeatureDx11::Evaluate(ID3D11DeviceContext* InDeviceContext, NVSDK_NGX_P // backup compute shader resources for (size_t i = 0; i < 128; i++) + { + restoreSRVs[i] = nullptr; InDeviceContext->CSGetShaderResources(i, 1, &restoreSRVs[i]); + } for (size_t i = 0; i < 16; i++) + { + restoreSamplerStates[i] = nullptr; InDeviceContext->CSGetSamplers(i, 1, &restoreSamplerStates[i]); + } for (size_t i = 0; i < 15; i++) + { + restoreCBVs[i] = nullptr; InDeviceContext->CSGetConstantBuffers(i, 1, &restoreCBVs[i]); + } for (size_t i = 0; i < 8; i++) + { + restoreUAVs[i] = nullptr; InDeviceContext->CSGetUnorderedAccessViews(i, 1, &restoreUAVs[i]); + } ProcessEvaluateParams(InParameters); diff --git a/OptiScaler/backends/dlssd/DLSSDFeature_Dx11.cpp b/OptiScaler/backends/dlssd/DLSSDFeature_Dx11.cpp index 32a71534..98b8f8bf 100644 --- a/OptiScaler/backends/dlssd/DLSSDFeature_Dx11.cpp +++ b/OptiScaler/backends/dlssd/DLSSDFeature_Dx11.cpp @@ -109,16 +109,28 @@ bool DLSSDFeatureDx11::Evaluate(ID3D11DeviceContext* InDeviceContext, NVSDK_NGX_ // backup compute shader resources for (size_t i = 0; i < 128; i++) + { + restoreSRVs[i] = nullptr; InDeviceContext->CSGetShaderResources(i, 1, &restoreSRVs[i]); + } for (size_t i = 0; i < 16; i++) + { + restoreSamplerStates[i] = nullptr; InDeviceContext->CSGetSamplers(i, 1, &restoreSamplerStates[i]); + } for (size_t i = 0; i < 15; i++) + { + restoreCBVs[i] = nullptr; InDeviceContext->CSGetConstantBuffers(i, 1, &restoreCBVs[i]); + } for (size_t i = 0; i < 8; i++) + { + restoreUAVs[i] = nullptr; InDeviceContext->CSGetUnorderedAccessViews(i, 1, &restoreUAVs[i]); + } ProcessEvaluateParams(InParameters); diff --git a/OptiScaler/backends/fsr2/FSR2Feature_Dx11.cpp b/OptiScaler/backends/fsr2/FSR2Feature_Dx11.cpp index ca8b4bb0..18b4b6cd 100644 --- a/OptiScaler/backends/fsr2/FSR2Feature_Dx11.cpp +++ b/OptiScaler/backends/fsr2/FSR2Feature_Dx11.cpp @@ -295,16 +295,28 @@ bool FSR2FeatureDx11::Evaluate(ID3D11DeviceContext* InContext, NVSDK_NGX_Paramet // backup compute shader resources for (size_t i = 0; i < 128; i++) + { + restoreSRVs[i] = nullptr; InContext->CSGetShaderResources(i, 1, &restoreSRVs[i]); + } for (size_t i = 0; i < 16; i++) + { + restoreSamplerStates[i] = nullptr; InContext->CSGetSamplers(i, 1, &restoreSamplerStates[i]); + } for (size_t i = 0; i < 15; i++) + { + restoreCBVs[i] = nullptr; InContext->CSGetConstantBuffers(i, 1, &restoreCBVs[i]); + } for (size_t i = 0; i < 8; i++) + { + restoreUAVs[i] = nullptr; InContext->CSGetUnorderedAccessViews(i, 1, &restoreUAVs[i]); + } FfxFsr2DispatchDescription params{}; params.commandList = InContext; diff --git a/OptiScaler/backends/fsr31/FSR31Feature_Dx11.cpp b/OptiScaler/backends/fsr31/FSR31Feature_Dx11.cpp index 9a1b72c7..ec2b00f7 100644 --- a/OptiScaler/backends/fsr31/FSR31Feature_Dx11.cpp +++ b/OptiScaler/backends/fsr31/FSR31Feature_Dx11.cpp @@ -149,16 +149,28 @@ bool FSR31FeatureDx11::Evaluate(ID3D11DeviceContext* DeviceContext, NVSDK_NGX_Pa // backup compute shader resources for (size_t i = 0; i < 128; i++) + { + restoreSRVs[i] = nullptr; DeviceContext->CSGetShaderResources(i, 1, &restoreSRVs[i]); + } for (size_t i = 0; i < 16; i++) + { + restoreSamplerStates[i] = nullptr; DeviceContext->CSGetSamplers(i, 1, &restoreSamplerStates[i]); + } for (size_t i = 0; i < 15; i++) + { + restoreCBVs[i] = nullptr; DeviceContext->CSGetConstantBuffers(i, 1, &restoreCBVs[i]); + } for (size_t i = 0; i < 8; i++) + { + restoreUAVs[i] = nullptr; DeviceContext->CSGetUnorderedAccessViews(i, 1, &restoreUAVs[i]); + } Fsr31::FfxFsr3DispatchUpscaleDescription params{};