From 543ee120fc4ab013b4df1a2fef47f830029d8676 Mon Sep 17 00:00:00 2001 From: Henri Verbeet Date: Wed, 28 May 2025 15:18:33 +0200 Subject: [PATCH] vkd3d-shader/msl: Implement VSIR_OP_DSX_FINE and VSIR_OP_DSY_FINE. --- libs/vkd3d-shader/msl.c | 2 ++ tests/hlsl/ddxddy.shader_test | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/libs/vkd3d-shader/msl.c b/libs/vkd3d-shader/msl.c index e292665db..4fd0d94f3 100644 --- a/libs/vkd3d-shader/msl.c +++ b/libs/vkd3d-shader/msl.c @@ -1320,6 +1320,7 @@ static void msl_handle_instruction(struct msl_generator *gen, const struct vkd3d break; case VSIR_OP_DSX: case VSIR_OP_DSX_COARSE: + case VSIR_OP_DSX_FINE: /* dfdx() and dfdy() are specified to return "a high precision * partial derivative", which would seem to correspond to * DSX_FINE/DSY_FINE. As of MSL 3.2, coarse/fast variants don't @@ -1328,6 +1329,7 @@ static void msl_handle_instruction(struct msl_generator *gen, const struct vkd3d break; case VSIR_OP_DSY: case VSIR_OP_DSY_COARSE: + case VSIR_OP_DSY_FINE: msl_intrinsic(gen, ins, "dfdy"); break; case VSIR_OP_ELSE: diff --git a/tests/hlsl/ddxddy.shader_test b/tests/hlsl/ddxddy.shader_test index 990b5304d..0a057cf56 100644 --- a/tests/hlsl/ddxddy.shader_test +++ b/tests/hlsl/ddxddy.shader_test @@ -74,7 +74,7 @@ float4 main(float4 pos : sv_position) : sv_target } [test] -todo(glsl | msl) draw quad +todo(glsl) draw quad probe (10, 10) rgba (-0.524999976, -0.164999843, 0.104999900, 0.0) 16 probe (11, 10) rgba (-0.689999819, -0.164999843, 0.114999890, 0.0) 32 probe (10, 11) rgba (-0.420000076, -0.154999852, 0.104999900, 0.0) 32