With tests from !364, separated out from the HLSL changes there and updated. This MR can wait until 364 is upstream though.
I'm not quite sure what the current ETA for that MR is; the expedient thing to do is likely to upstream the tests as part of this MR.
+% Microsoft natively outputs values that are slightly mathematically wrong. +% VKD3D faithfully does the same.
"vkd3d-shader", and Microsoft doesn't necessarily output any values here. d3dcompiler's HLSL compiler does generate the shader code of course, but from that comment it's not clear to me whether that code is inaccurate, or whether that's a result of the hardware or drivers. Ultimately we don't particularly care.
What we do care about is whether the results are consistent across GPUs and drivers for a particular shader model.
+[pixel shader todo] +uniform float4 a; + +float4 main() : sv_target +{ + // Because the argument order is (y,x) the numbers are + // passed in "backwards" here, so they're the right way in the + // test cases. + return float4(atan2(a.x, a.y), 0.0, 0.0, 0.0); +}
I don't get it.