From 00d5da05c5e0557db5ed73e48906757ef086c7ef Mon Sep 17 00:00:00 2001 From: papadanku Date: Sun, 19 Nov 2023 18:51:22 -0700 Subject: [PATCH] Use fwidth instead --- shaders/cBlockMatching.fx | 2 +- shaders/cOpticalFlow.fx | 2 +- shaders/kDatamosh.fx | 4 ++-- shaders/shared/cImageProcessing.fxh | 4 ++-- shaders/shared/cVideoProcessing.fxh | 4 ++-- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/shaders/cBlockMatching.fx b/shaders/cBlockMatching.fx index 9aec556..bf23cf4 100644 --- a/shaders/cBlockMatching.fx +++ b/shaders/cBlockMatching.fx @@ -92,7 +92,7 @@ namespace cBlockMatching float4 PS_Display(VS2PS_Quad Input) : SV_TARGET0 { - float2 InvTexSize = float2(ddx(Input.Tex0.x), ddy(Input.Tex0.y)); + float2 InvTexSize = fwidth(Input.Tex0); float2 Vectors = tex2Dlod(SampleOFlowTex, float4(Input.Tex0.xy, 0.0, _MipBias)).xy; Vectors = DecodeVectors(Vectors, InvTexSize); diff --git a/shaders/cOpticalFlow.fx b/shaders/cOpticalFlow.fx index 8996791..20ce817 100644 --- a/shaders/cOpticalFlow.fx +++ b/shaders/cOpticalFlow.fx @@ -102,7 +102,7 @@ namespace cOpticalFlow float4 PS_Display(VS2PS_Quad Input) : SV_TARGET0 { - float2 InvTexSize = float2(ddx(Input.Tex0.x), ddy(Input.Tex0.y)); + float2 InvTexSize = fwidth(Input.Tex0); float2 Vectors = tex2Dlod(SampleTempTex2b, float4(Input.Tex0.xy, 0.0, _MipBias)).xy; Vectors = DecodeVectors(Vectors, InvTexSize); diff --git a/shaders/kDatamosh.fx b/shaders/kDatamosh.fx index 40c5f51..3b2fd93 100644 --- a/shaders/kDatamosh.fx +++ b/shaders/kDatamosh.fx @@ -194,7 +194,7 @@ namespace kDatamosh float2 GetMVBlocks(float2 MV, float2 Tex, out float3 Random) { - float2 TexSize = float2(ddx(Tex.x), ddy(Tex.y)); + float2 TexSize = fwidth(Tex); float2 Time = float2(_Time, 0.0); // Random numbers @@ -251,7 +251,7 @@ namespace kDatamosh float4 PS_Datamosh(VS2PS_Quad Input) : SV_TARGET0 { - float2 TexSize = float2(ddx(Input.Tex0.x), ddy(Input.Tex0.y)); + float2 TexSize = fwidth(Input.Tex0); const float2 DisplacementTexel = BUFFER_SIZE_0; const float Quality = 1.0 - _Entropy; float3 Random = 0.0; diff --git a/shaders/shared/cImageProcessing.fxh b/shaders/shared/cImageProcessing.fxh index cca0be0..7a86e15 100644 --- a/shaders/shared/cImageProcessing.fxh +++ b/shaders/shared/cImageProcessing.fxh @@ -38,7 +38,7 @@ const float4 VShift = float4(0.0, -1.0, 0.0, 1.0); float4 OutputColor = 0.0; - float4 PSize = float2(ddx(Input.Tex0.x), ddy(Input.Tex0.y)).xyxy; + float4 PSize = fwidth(Input.Tex0).xyxy; const float Offsets[KernelSize] = { @@ -93,7 +93,7 @@ float4 Filter3x3(sampler2D SampleSource, float2 Tex, bool DownSample) { const float3 Weights = float3(1.0, 2.0, 4.0) / 16.0; - float2 PixelSize = float2(ddx(Tex.x), ddy(Tex.y)); + float2 PixelSize = fwidth(Tex); PixelSize = (DownSample) ? PixelSize * 0.5 : PixelSize; float4 STex[3] = diff --git a/shaders/shared/cVideoProcessing.fxh b/shaders/shared/cVideoProcessing.fxh index e3921a5..f27a957 100644 --- a/shaders/shared/cVideoProcessing.fxh +++ b/shaders/shared/cVideoProcessing.fxh @@ -57,7 +57,7 @@ // Get required data to calculate main texel data const float Pi2 = acos(-1.0) * 2.0; const float2 ImageSize = tex2Dsize(SampleI0, 0.0); - float2 PixelSize = float2(ddx(MainTex.x), ddy(MainTex.y)); + float2 PixelSize = fwidth(MainTex); // Calculate main texel data (TexelSize, TexelLOD) T.Mask = float4(1.0, 1.0, 0.0, 0.0) * abs(PixelSize.xyyy); @@ -222,7 +222,7 @@ // Get required data to calculate main texel data const float2 ImageSize = tex2Dsize(SampleTemplate, 0.0); - float2 PixelSize = float2(ddx(MainTex.x), ddy(MainTex.y)); + float2 PixelSize = fwidth(MainTex); // Calculate main texel data (TexelSize, TexelLOD) B.Mask = float4(1.0, 1.0, 0.0, 0.0) * abs(PixelSize.xyyy);