diff --git a/libs/vkd3d-shader/msl.c b/libs/vkd3d-shader/msl.c index 9279b5ae5..a655179dd 100644 --- a/libs/vkd3d-shader/msl.c +++ b/libs/vkd3d-shader/msl.c @@ -957,6 +957,7 @@ static void msl_handle_instruction(struct msl_generator *gen, const struct vkd3d case VKD3DSIH_ENDIF: msl_end_block(gen); break; + case VKD3DSIH_EQO: case VKD3DSIH_IEQ: msl_relop(gen, ins, "=="); break; diff --git a/tests/hlsl/float-comparison.shader_test b/tests/hlsl/float-comparison.shader_test index d36376191..5244fb391 100644 --- a/tests/hlsl/float-comparison.shader_test +++ b/tests/hlsl/float-comparison.shader_test @@ -55,7 +55,7 @@ float4 main() : sv_target [test] uniform 0 float4 0.0 1.5 1.5 0.0 -todo(msl) draw quad +draw quad % SM1-3 apparently treats '0/0' as zero. if(sm<4) todo probe (0,0) rgba (1010101.0, 11001100.0, 1101001.0, 11.0) % SM4-5 optimises away the 'not' by inverting the condition, even though this is invalid for NaN. diff --git a/tests/hlsl/minimum-precision.shader_test b/tests/hlsl/minimum-precision.shader_test index 9ab6bfdbd..7ffc3afff 100644 --- a/tests/hlsl/minimum-precision.shader_test +++ b/tests/hlsl/minimum-precision.shader_test @@ -181,7 +181,7 @@ uint4 main() : sv_target uniform 0 float4 1.0 2.0 3.0 4.0 uniform 4 float4 11.0 12.0 13.0 14.0 uniform 8 float4 21.0 22.0 23.0 24.0 -todo(msl) draw quad +draw quad probe (0, 0) rgbaui(1, 1, 1, 1) [require]