SpvOpFOrdEqual doesn't seem to perform ordered comparison, e.g. NaN and 1.0 gives true. I expect this to also be a problem for other ordered comparison SPIR-V opcodes.
Mesa SPIR-V to NIR translator inserts additional nir_feq instructions in order to detect NaNs, but those instructions are probably optimized out by LLVM.
The problem can be reproduced by running VKD3D tests: https://source.winehq.org/git/vkd3d.git/blob/HEAD:/tests/d3d12.c#l6640
I can write a standalone test case, if needed.
Yeah, would be nice to have a standalone case.
This should fix the issue https://cgit.freedesktop.org/mesa/mesa/commit/?id=e05507a427b79e481eb8e45d7aa3c9b4b78376bf
Can you confirm and close the bug, please?
e05507a427b79e481eb8e45d7aa3c9b4b78376bf fixes the issue. Thanks!