[PATCH vkd3d v4 2/6] tests: Test a number of simple HLSL operations.

Francisco Casas fcasas at codeweavers.com
Fri Jan 28 08:53:40 CST 2022


Hi, I found something that I am not sure if it may be a problem:

January 28, 2022 5:03 AM, "Giovanni Mascellani" <gmascellani at 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.



More information about the wine-devel mailing list