diff --git a/libs/vkd3d-shader/msl.c b/libs/vkd3d-shader/msl.c index a2e218b52..eacbb6a29 100644 --- a/libs/vkd3d-shader/msl.c +++ b/libs/vkd3d-shader/msl.c @@ -1170,6 +1170,9 @@ static void msl_handle_instruction(struct msl_generator *gen, const struct vkd3d case VKD3DSIH_SWITCH: msl_switch(gen, ins); break; + case VKD3DSIH_XOR: + msl_binop(gen, ins, "^"); + break; default: msl_unhandled(gen, ins); break; diff --git a/tests/hlsl/arithmetic-uint.shader_test b/tests/hlsl/arithmetic-uint.shader_test index 8b74ad7e4..925972525 100644 --- a/tests/hlsl/arithmetic-uint.shader_test +++ b/tests/hlsl/arithmetic-uint.shader_test @@ -106,7 +106,7 @@ uint4 main() : SV_TARGET [test] uniform 0 uint4 0xccaa5533 7 1 2 -todo(msl) draw quad +draw quad probe (0, 0) u32(0xff77, 0xf, 0x407f, 0x9) % Minimum precision vectors in constant buffers have inconsistent behavior with