diff --git a/libs/vkd3d-shader/msl.c b/libs/vkd3d-shader/msl.c index b92978e0..f1ca581f 100644 --- a/libs/vkd3d-shader/msl.c +++ b/libs/vkd3d-shader/msl.c @@ -654,6 +654,9 @@ static void msl_handle_instruction(struct msl_generator *gen, const struct vkd3d case VKD3DSIH_ROUND_Z: msl_intrinsic(gen, ins, "trunc"); break; + case VKD3DSIH_RSQ: + msl_intrinsic(gen, ins, "rsqrt"); + break; case VKD3DSIH_SQRT: msl_intrinsic(gen, ins, "sqrt"); break; diff --git a/tests/hlsl/normalize.shader_test b/tests/hlsl/normalize.shader_test index e26aada6..18815c93 100644 --- a/tests/hlsl/normalize.shader_test +++ b/tests/hlsl/normalize.shader_test @@ -8,7 +8,7 @@ float4 main() : SV_TARGET [test] uniform 0 float4 2.0 3.0 4.0 5.0 -todo(msl) draw quad +draw quad probe (0, 0) rgba (0.272165537, 0.408248305, 0.544331074, 0.680413842) 2 [pixel shader] @@ -21,7 +21,7 @@ float4 main() : SV_TARGET [test] uniform 0 float4 2.0 3.0 4.0 0.0 -todo(msl) draw quad +draw quad probe (0, 0) rgba (0.371390700, 0.557086051, 0.742781401, 0.0) 1 [pixel shader] @@ -34,7 +34,7 @@ float4 main() : SV_TARGET [test] uniform 0 float4 2.0 3.0 0.0 0.0 -todo(sm<4 | msl) draw quad +todo(sm<4) draw quad probe (0, 0) rgba (0.554700196, 0.832050323, 0.0, 0.0) 1 [pixel shader] @@ -47,7 +47,7 @@ float4 main() : SV_TARGET [test] uniform 0 float4 2.0 0.0 0.0 0.0 -todo(msl) draw quad +draw quad probe (0, 0) rgba (1.0, 1.0, 1.0, 1.0) [pixel shader] @@ -60,7 +60,7 @@ float4 main() : SV_TARGET [test] uniform 0 float4 2.0 0.0 0.0 0.0 -todo(msl) draw quad +draw quad probe (0, 0) rgba (1.0, 1.0, 1.0, 1.0) [pixel shader fail] diff --git a/tests/hlsl/sqrt.shader_test b/tests/hlsl/sqrt.shader_test index 7a2b84d5..d576bf17 100644 --- a/tests/hlsl/sqrt.shader_test +++ b/tests/hlsl/sqrt.shader_test @@ -21,5 +21,5 @@ float4 main() : sv_target [test] uniform 0 float4 1.0 9.0 4.0 16.0 -todo(msl) draw quad +draw quad probe (0, 0) rgba (1.0, 0.33333333, 0.5, 0.25) 1