From 90758b7ca8b0c900f55cda180b7b4042c2c2859b Mon Sep 17 00:00:00 2001 From: Henri Verbeet Date: Mon, 22 Sep 2025 17:03:21 +0200 Subject: [PATCH] vkd3d-shader/msl: Implement VSIR_OP_UDIV_SIMPLE. --- libs/vkd3d-shader/msl.c | 3 +++ tests/hlsl/arithmetic-int-uniform.shader_test | 22 +++++++++---------- tests/hlsl/arithmetic-uint.shader_test | 2 +- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/libs/vkd3d-shader/msl.c b/libs/vkd3d-shader/msl.c index fc136e3ac..3b51d1550 100644 --- a/libs/vkd3d-shader/msl.c +++ b/libs/vkd3d-shader/msl.c @@ -1578,6 +1578,9 @@ static void msl_handle_instruction(struct msl_generator *gen, const struct vkd3d case VSIR_OP_HTAN: msl_intrinsic(gen, ins, "tanh"); break; + case VSIR_OP_UDIV_SIMPLE: + msl_binop(gen, ins, "/"); + break; case VSIR_OP_IF: msl_if(gen, ins); break; diff --git a/tests/hlsl/arithmetic-int-uniform.shader_test b/tests/hlsl/arithmetic-int-uniform.shader_test index a664356a6..02daed20d 100644 --- a/tests/hlsl/arithmetic-int-uniform.shader_test +++ b/tests/hlsl/arithmetic-int-uniform.shader_test @@ -10,8 +10,8 @@ float4 main() : SV_TARGET [test] uniform 0 float4 5.0 16.0 0.0 0.0 -todo(msl) draw quad -probe (0, 0) rgba (21.0, -11.0, 80.0, 0.0) +todo(msl & sm>=6) draw quad +probe (0, 0) f32(21.0, -11.0, 80.0, 0.0) [pixel shader] uniform float2 a; @@ -40,8 +40,8 @@ float4 main() : SV_TARGET [test] uniform 0 float4 42.0 5.0 0.0 0.0 -todo(msl) draw quad -probe (0, 0) rgba (8.0, -8.0, -8.0, 8.0) +todo(msl & sm>=6) draw quad +probe (0, 0) f32(8.0, -8.0, -8.0, 8.0) [pixel shader] uniform float2 a; @@ -70,8 +70,8 @@ float4 main() : SV_TARGET [test] uniform 0 float4 45.0 5.0 0.0 0.0 -todo(msl) draw quad -probe (0, 0) rgba (9.0, -9.0, -9.0, 9.0) +todo(msl & sm>=6) draw quad +probe (0, 0) f32(9.0, -9.0, -9.0, 9.0) [pixel shader] uniform float2 a; @@ -150,9 +150,9 @@ float4 main() : sv_target [test] uniform 0 float 999.0 -todo(msl) draw quad -if(sm<4) probe (0, 0) rgba(16798, -16798, -16798, 16798) -if(sm>=4) probe (0, 0) rgba(16799, -16799, -16799, 16799) +todo(msl & sm>=6) draw quad +if(sm<4) probe (0, 0) f32(16798, -16798, -16798, 16798) +if(sm>=4) probe (0, 0) f32(16799, -16799, -16799, 16799) [pixel shader] float f; @@ -167,8 +167,8 @@ float4 main() : sv_target [test] uniform 0 float 999.0 -todo(msl) draw quad -probe (0, 0) rgba(16798, -16798, -16798, 16798) +todo(msl & sm>=6) draw quad +probe (0, 0) f32(16798, -16798, -16798, 16798) [require] shader model >= 6.0 diff --git a/tests/hlsl/arithmetic-uint.shader_test b/tests/hlsl/arithmetic-uint.shader_test index 0ea94b194..f7c9f95de 100644 --- a/tests/hlsl/arithmetic-uint.shader_test +++ b/tests/hlsl/arithmetic-uint.shader_test @@ -236,7 +236,7 @@ uniform 0 uint 0xfffe uniform 4 uint 0xb uniform 8 uint 0xffff uniform 12 uint 0xffff -todo(msl) draw quad +todo(msl & sm>=6) draw quad probe (0, 0) u32(0x10, 2, 0x10, 0x3333) [require]