[PATCH vkd3d v2 5/5] tests: Test arithmetic int operations without constant operands.

Giovanni Mascellani gmascellani at codeweavers.com
Fri Jul 1 04:23:34 CDT 2022


Signed-off-by: Giovanni Mascellani <gmascellani at codeweavers.com>
---
v2:
* Pass inputs as floats so that the test can be run also on SM1.
* Use 16 instead of 15, because with SM1 it holds 5 % 15 == 4, likely because of inexact float operations.
---
 Makefile.am                              |  1 +
 tests/arithmetic-int-uniform.shader_test | 29 ++++++++++++++++++++++++
 2 files changed, 30 insertions(+)
 create mode 100644 tests/arithmetic-int-uniform.shader_test

diff --git a/Makefile.am b/Makefile.am
index 0cb90b2b..60db7794 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -54,6 +54,7 @@ vkd3d_shader_tests = \
 	tests/abs.shader_test \
 	tests/arithmetic-float.shader_test \
 	tests/arithmetic-int.shader_test \
+	tests/arithmetic-int-uniform.shader_test \
 	tests/arithmetic-uint.shader_test \
 	tests/bitwise.shader_test \
 	tests/cast-broadcast.shader_test \
diff --git a/tests/arithmetic-int-uniform.shader_test b/tests/arithmetic-int-uniform.shader_test
new file mode 100644
index 00000000..ff80a9b0
--- /dev/null
+++ b/tests/arithmetic-int-uniform.shader_test
@@ -0,0 +1,29 @@
+[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 5.0 16.0 0.0 0.0
+todo draw quad
+probe all rgba (21.0, -11.0, 80.0, 0.0)
+
+[pixel shader]
+uniform float2 a;
+
+float4 main() : SV_TARGET
+{
+    int x = a.x;
+    int y = a.y;
+    return float4(x % y, +x, -x, y / x);
+}
+
+[test]
+uniform 0 float4 5.0 16.0 0.0 0.0
+todo draw quad
+probe all rgba (5.0, 5.0, -5.0, 3.0)
-- 
2.36.1




More information about the wine-devel mailing list