Hi, I found something that I am not sure if it may be a problem:
January 28, 2022 5:03 AM, "Giovanni Mascellani" gmascellani@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.