[PATCH vkd3d v3 2/8] tests: Test struct initializers.

Francisco Casas fcasas at codeweavers.com
Thu Jan 20 15:06:36 CST 2022


Signed-off-by: Francisco Casas <fcasas at codeweavers.com>
---

v3: Replaced double2 with int2 so that tests are compatible with
ps_4_0.

Signed-off-by: Francisco Casas <fcasas at codeweavers.com>
---
 Makefile.am                               |  2 +
 tests/hlsl-initializer-struct.shader_test | 77 +++++++++++++++++++++++
 2 files changed, 79 insertions(+)
 create mode 100644 tests/hlsl-initializer-struct.shader_test

diff --git a/Makefile.am b/Makefile.am
index 3545d74b..051053cd 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -70,6 +70,7 @@ vkd3d_shader_tests = \
 	tests/hlsl-function-overload.shader_test \
 	tests/hlsl-initializer-local-array.shader_test \
 	tests/hlsl-initializer-static-array.shader_test \
+	tests/hlsl-initializer-struct.shader_test \
 	tests/hlsl-intrinsic-override.shader_test \
 	tests/hlsl-invalid.shader_test \
 	tests/hlsl-majority-pragma.shader_test \
@@ -293,6 +294,7 @@ XFAIL_TESTS = \
 	tests/hlsl-array-dimension.shader_test \
 	tests/hlsl-initializer-local-array.shader_test \
 	tests/hlsl-initializer-static-array.shader_test \
+	tests/hlsl-initializer-struct.shader_test \
 	tests/hlsl-bool-cast.shader_test \
 	tests/hlsl-duplicate-modifiers.shader_test \
 	tests/hlsl-for.shader_test \
diff --git a/tests/hlsl-initializer-struct.shader_test b/tests/hlsl-initializer-struct.shader_test
new file mode 100644
index 00000000..7efb4bb4
--- /dev/null
+++ b/tests/hlsl-initializer-struct.shader_test
@@ -0,0 +1,77 @@
+[pixel shader]
+struct stu {
+    int3 aaa;
+    float3 bbb;
+    int2 ccc;
+    float4 ddd;
+    int eee;
+};
+
+float4 main() : sv_target
+{
+    struct stu val = {
+        11, 12, 13,
+        21, 22, 23,
+        31, 32,
+        41, 42, 43, 44,
+        51
+    };
+    return val.ddd;
+}
+
+[test]
+draw quad
+probe all rgba (41, 42, 43, 44)
+
+
+[pixel shader]
+struct stu {
+    int3 aaa;
+    float3 bbb[2];
+    int2 ccc;
+    float4 ddd[3][2];
+    int eee;
+};
+
+float4 main() : sv_target
+{
+    struct stu val = {
+        11, 12, 13,
+        211, 212, 213, 221, 222, 223,
+        31, 32,
+        4111, 4112, 4113, 4114, 4121, 4122, 4123, 4124,
+        4211, 4212, 4213, 4214, 4221, 4222, 4223, 4224,
+        4311, 4312, 4313, 4314, 4321, 4322, 4323, 4324,
+        51
+    };
+    return val.ddd[2][0];
+}
+
+[test]
+draw quad
+probe all rgba (4311, 4312, 4313, 4314)
+
+
+[pixel shader]
+struct stu {
+    int3 aaa;
+    struct {
+        float4 foo;
+        int2 bar;
+    } bbb[3];
+};
+
+float4 main() : sv_target
+{
+    struct stu val = {
+        1, 2, 3,
+        11, 12, 13, 14, 15, 16,
+        21, 22, 23, 24, 25, 26,
+        31, 32, 33, 34, 35, 36
+    };
+    return val.bbb[1].foo;
+}
+
+[test]
+draw quad
+probe all rgba (21, 22, 23, 24)
-- 
2.25.1




More information about the wine-devel mailing list