Hi, I found something that I am not sure if it may be a problem: January 28, 2022 5:03 AM, "Giovanni Mascellani" <gmascellani(a)codeweavers.com> wrote:
+[test] +draw quad +probe all rgba (20.0, 4294967300.0, 75.0, 0.0) + +[pixel shader] +float4 main() : SV_TARGET +{ + uint x = 5; + uint y = 15; + + return float4(x % y, +x, -x, y / x); +} + +[test] +draw quad +probe all rgba (5.0, 5.0, 4294967300.0, 3.0)
The native compiler output is --- ps_4_0 dcl_output o0.xyzw mov o0.xyzw, l(20.000000,4294967296.000000,75.000000,0) ret --- Probably because float doesn't have enough precision to represent 4294967300.
+[pixel shader] +float4 main() : SV_TARGET +{ + uint x = 5; + uint y = 15; + + return float4(x == y, x != y, x < y, x <= y); +}
Same for the next test:
+[test] +draw quad +probe all rgba (0.0, 1.0, 1.0, 1.0) + +[pixel shader] +float4 main() : SV_TARGET +{ + uint x = 5; + uint y = 15; + uint zero = 0; + + return float4(x > y, x >= y, !x, !zero); +} +
And this one:
+[pixel shader] +float4 main() : SV_TARGET +{ + uint x = 5; + uint y = 15; + + return float4(x & y, x | y, x ^ y, ~x); +} + +[test] +draw quad +probe all rgba (5.0, 15.0, 10.0, 4294967300.0)
Everything else seems okay.