tests: Test sign rules for integer division and modulus.

This commit is contained in:
Giovanni Mascellani 2022-10-14 15:10:13 +02:00 committed by Alexandre Julliard
parent 0a07ac6f88
commit d1da5436f4
Notes: Alexandre Julliard 2022-10-19 22:07:30 +02:00
Approved-by: Zebediah Figura (@zfigura)
Approved-by: Henri Verbeet (@hverbeet)
Approved-by: Alexandre Julliard (@julliard)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/32
2 changed files with 112 additions and 0 deletions

View File

@ -28,6 +28,66 @@ uniform 0 float4 5.0 16.0 0.0 0.0
draw quad
probe all rgba (5.0, 5.0, -5.0, 3.0)
[pixel shader]
uniform float2 a;
float4 main() : SV_TARGET
{
int x = a.x;
int y = a.y;
return float4(x / y, -x / y, x / -y, -x / -y);
}
[test]
uniform 0 float4 42.0 5.0 0.0 0.0
draw quad
probe all rgba (8.0, -8.0, -8.0, 8.0)
[pixel shader]
uniform float2 a;
float4 main() : SV_TARGET
{
int x = a.x;
int y = a.y;
return float4(x % y, -x % y, x % -y, -x % -y);
}
[test]
uniform 0 float4 42.0 5.0 0.0 0.0
draw quad
probe all rgba (2.0, -2.0, 2.0, -2.0)
[pixel shader]
uniform float2 a;
float4 main() : SV_TARGET
{
int x = a.x;
int y = a.y;
return float4(x / y, -x / y, x / -y, -x / -y);
}
[test]
uniform 0 float4 45.0 5.0 0.0 0.0
draw quad
probe all rgba (9.0, -9.0, -9.0, 9.0)
[pixel shader]
uniform float2 a;
float4 main() : SV_TARGET
{
int x = a.x;
int y = a.y;
return float4(x % y, -x % y, x % -y, -x % -y);
}
[test]
uniform 0 float4 45.0 5.0 0.0 0.0
draw quad
probe all rgba (0.0, 0.0, 0.0, 0.0)
[pixel shader]
uniform float4 a;

View File

@ -24,6 +24,58 @@ float4 main() : SV_TARGET
draw quad
probe all rgba (5.0, 5.0, -5.0, 3.0)
[pixel shader]
float4 main() : SV_TARGET
{
int x = 42;
int y = 5;
return float4(x / y, -x / y, x / -y, -x / -y);
}
[test]
draw quad
probe all rgba (8.0, -8.0, -8.0, 8.0)
[pixel shader]
float4 main() : SV_TARGET
{
int x = 42;
int y = 5;
return float4(x % y, -x % y, x % -y, -x % -y);
}
[test]
draw quad
probe all rgba (2.0, -2.0, 2.0, -2.0)
[pixel shader]
float4 main() : SV_TARGET
{
int x = 45;
int y = 5;
return float4(x / y, -x / y, x / -y, -x / -y);
}
[test]
draw quad
probe all rgba (9.0, -9.0, -9.0, 9.0)
[pixel shader]
float4 main() : SV_TARGET
{
int x = 45;
int y = 5;
return float4(x % y, -x % y, x % -y, -x % -y);
}
[test]
draw quad
probe all rgba (0.0, 0.0, 0.0, 0.0)
[pixel shader fail]
float4 main() : SV_TARGET
{