http://bugs.winehq.org/show_bug.cgi?id=60024 --- Comment #1 from Henri Verbeet <hverbeet@gmail.com> --- (In reply to Simon McVittie from comment #0)
vkd3d 2.0 runs build-time tests successfully on most Debian architectures where it has been tried (x86_64, arm64, i386), but on ppc64el (64-bit little-endian PowerPC) the d3d12 test failed with:
d3d12.c:11416: 84:sat: Test failed: Got {1.00000000e+00, 1.00000000e+00, 1.00000000e+00, 0.00000000e+00}, expected {0.00000000e+00, 0.00000000e+00, 1.00000000e+00, 0.00000000e+00} at (0, 0). d3d12.c:11416: 87:min_max: Test failed: Got {1.00000000e+00, nan, 0.00000000e+00, 0.00000000e+00}, expected {1.00000000e+00, 1.00000000e+00, 0.00000000e+00, 0.00000000e+00} at (0, 0). d3d12.c:11416: 88:min_max: Test failed: Got {0.00000000e+00, nan, 0.00000000e+00, 0.00000000e+00}, expected {0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00} at (0, 0).
These seem to be the only three unexpected failures. Does this seem familiar to anyone?
I can't say it looks familiar to me, but these results seem to suggest an issue with the ppc64el implementation of the GLSLstd450NMax SPIR-V instruction in lavapipe/llvmpipe. Specifically, the values that differ above are calculated like this in the shader: 84:sat: GLSLstd450NClamp(NAN, 0.0, 1.0) GLSLstd450NClamp(-NAN, 0.0, 1.0) 87:min_max: GLSLstd450NMax(NAN, 1.0) 88:min_max: GLSLstd450NMax(0.0, NAN) https://registry.khronos.org/SPIR-V/specs/unified1/GLSL.std.450.html says about NMax: "If one operand is a NaN, the other operand is the result. If both operands are NaN, the result is a NaN.", and about NClamp: "Result is min(max(x, minVal), maxVal)." What seems to be happening here is that NMax is returning NANs, and the NClamp results seem to follow from that. Notably, NMin does appear to behave as expected. It would take me a bit of effort to verify whether that's indeed what's happening though. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.