From 96099037705184da3279757c9ea5ff48744cb4c7 Mon Sep 17 00:00:00 2001 From: Henri Verbeet Date: Thu, 21 Nov 2024 02:01:38 +0100 Subject: [PATCH] vkd3d-shader/glsl: Implement VSIR_OP_DSX and VSIR_OP_DSY. --- libs/vkd3d-shader/glsl.c | 6 ++++++ tests/hlsl/ddxddy.shader_test | 4 ++-- tests/hlsl/fwidth.shader_test | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/libs/vkd3d-shader/glsl.c b/libs/vkd3d-shader/glsl.c index 5a4ac4d75..15c049060 100644 --- a/libs/vkd3d-shader/glsl.c +++ b/libs/vkd3d-shader/glsl.c @@ -1500,6 +1500,12 @@ static void vkd3d_glsl_handle_instruction(struct vkd3d_glsl_generator *gen, case VSIR_OP_DP4: shader_glsl_dot(gen, ins, VKD3DSP_WRITEMASK_ALL); break; + case VSIR_OP_DSX: + shader_glsl_intrinsic(gen, ins, "dFdx"); + break; + case VSIR_OP_DSY: + shader_glsl_intrinsic(gen, ins, "dFdy"); + break; case VSIR_OP_ELSE: shader_glsl_else(gen, ins); break; diff --git a/tests/hlsl/ddxddy.shader_test b/tests/hlsl/ddxddy.shader_test index 0a057cf56..d9ea3af4c 100644 --- a/tests/hlsl/ddxddy.shader_test +++ b/tests/hlsl/ddxddy.shader_test @@ -8,7 +8,7 @@ float4 main(float4 pos : sv_position) : sv_target } [test] -todo(sm<4 | glsl) draw quad +todo(sm<4) draw quad probe (0, 0, 640, 480) rgba (1.0, 1.0, 0.0, 0.0) @@ -29,7 +29,7 @@ float4 main(float4 pos : sv_position) : sv_target } [test] -todo(sm<4 | glsl) draw quad +todo(sm<4) draw quad todo(sm<4) probe (10, 10) rgba (-16.0, -5.0, 3.0, 0.0) todo(sm<4) probe (11, 10) rgba (-21.0, -5.0, 3.0, 0.0) todo(sm<4) probe (10, 11) rgba (-13.0, -5.0, 3.0, 0.0) diff --git a/tests/hlsl/fwidth.shader_test b/tests/hlsl/fwidth.shader_test index 3ba116a57..99fb1421d 100644 --- a/tests/hlsl/fwidth.shader_test +++ b/tests/hlsl/fwidth.shader_test @@ -18,7 +18,7 @@ float4 main(float4 pos : sv_position) : sv_target } [test] -todo(sm<4 | glsl) draw quad +todo(sm<4) draw quad probe (10, 10) rgba (8.0, 8.0, 8.0, 8.0) probe (11, 10) rgba (8.0, 8.0, 8.0, 8.0) probe (12, 10) rgba (10.0, 10.0, 10.0, 10.0)