From: Giovanni Mascellani gmascellani@codeweavers.com
--- tests/arithmetic-int-uniform.shader_test | 60 ++++++++++++++++++++++++ tests/arithmetic-int.shader_test | 52 ++++++++++++++++++++ 2 files changed, 112 insertions(+)
diff --git a/tests/arithmetic-int-uniform.shader_test b/tests/arithmetic-int-uniform.shader_test index cac2a234..bd35f566 100644 --- a/tests/arithmetic-int-uniform.shader_test +++ b/tests/arithmetic-int-uniform.shader_test @@ -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;
diff --git a/tests/arithmetic-int.shader_test b/tests/arithmetic-int.shader_test index 8b6d6d7c..f4c98904 100644 --- a/tests/arithmetic-int.shader_test +++ b/tests/arithmetic-int.shader_test @@ -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 {