diff --git a/OptiScaler/upscalers/fsr31/FSR31Feature_Dx11On12.cpp b/OptiScaler/upscalers/fsr31/FSR31Feature_Dx11On12.cpp index 68821058..3220a424 100644 --- a/OptiScaler/upscalers/fsr31/FSR31Feature_Dx11On12.cpp +++ b/OptiScaler/upscalers/fsr31/FSR31Feature_Dx11On12.cpp @@ -184,6 +184,16 @@ bool FSR31FeatureDx11on12::Evaluate(ID3D11DeviceContext* InDeviceContext, NVSDK_ params.sharpness = _sharpness; } + // Force enable RCAS when in FSR4 debug view mode + // it crashes when sharpening is disabled + // Debug view expects RCAS output (now sure why) + if (Version() >= feature_version { 4, 0, 2 } && Config::Instance()->FsrDebugView.value_or_default() && + Config::Instance()->Fsr4EnableDebugView.value_or_default() && !params.enableSharpening) + { + params.enableSharpening = true; + params.sharpness = 0.0f; + } + unsigned int reset; InParameters->Get(NVSDK_NGX_Parameter_Reset, &reset); params.reset = (reset == 1); diff --git a/OptiScaler/upscalers/fsr31/FSR31Feature_Dx12.cpp b/OptiScaler/upscalers/fsr31/FSR31Feature_Dx12.cpp index e271c94e..a2a88eaf 100644 --- a/OptiScaler/upscalers/fsr31/FSR31Feature_Dx12.cpp +++ b/OptiScaler/upscalers/fsr31/FSR31Feature_Dx12.cpp @@ -99,6 +99,16 @@ bool FSR31FeatureDx12::Evaluate(ID3D12GraphicsCommandList* InCommandList, NVSDK_ params.sharpness = _sharpness; } + // Force enable RCAS when in FSR4 debug view mode + // it crashes when sharpening is disabled + // Debug view expects RCAS output (now sure why) + if (Version() >= feature_version { 4, 0, 2 } && Config::Instance()->FsrDebugView.value_or_default() && + Config::Instance()->Fsr4EnableDebugView.value_or_default() && !params.enableSharpening) + { + params.enableSharpening = true; + params.sharpness = 0.0f; + } + LOG_DEBUG("Jitter Offset: {0}x{1}", params.jitterOffset.x, params.jitterOffset.y); unsigned int reset;