[PATCH vkd3d 2/5] tests: Import HLSL swizzle tests from Wine.

Zebediah Figura zfigura at codeweavers.com
Wed Sep 30 21:01:19 CDT 2020


Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
---
 Makefile.am                 | 21 ++++++++++++++++++++-
 tests/swizzle-0.shader_test | 15 +++++++++++++++
 tests/swizzle-1.shader_test | 11 +++++++++++
 tests/swizzle-2.shader_test | 11 +++++++++++
 tests/swizzle-3.shader_test | 14 ++++++++++++++
 tests/swizzle-4.shader_test | 13 +++++++++++++
 tests/swizzle-5.shader_test | 10 ++++++++++
 tests/swizzle-6.shader_test | 12 ++++++++++++
 tests/swizzle-7.shader_test | 11 +++++++++++
 9 files changed, 117 insertions(+), 1 deletion(-)
 create mode 100644 tests/swizzle-0.shader_test
 create mode 100644 tests/swizzle-1.shader_test
 create mode 100644 tests/swizzle-2.shader_test
 create mode 100644 tests/swizzle-3.shader_test
 create mode 100644 tests/swizzle-4.shader_test
 create mode 100644 tests/swizzle-5.shader_test
 create mode 100644 tests/swizzle-6.shader_test
 create mode 100644 tests/swizzle-7.shader_test

diff --git a/Makefile.am b/Makefile.am
index 5e2ea3ea..958be146 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -49,6 +49,16 @@ vkd3d_cross_tests = \
 vkd3d_shader_runners = \
 	tests/shader_runner_d3d12
 
+vkd3d_shader_tests = \
+	tests/swizzle-0.shader_test \
+	tests/swizzle-1.shader_test \
+	tests/swizzle-2.shader_test \
+	tests/swizzle-3.shader_test \
+	tests/swizzle-4.shader_test \
+	tests/swizzle-5.shader_test \
+	tests/swizzle-6.shader_test \
+	tests/swizzle-7.shader_test
+
 vkd3d_test_headers = \
 	tests/d3d12_crosstest.h \
 	tests/d3d12_test_utils.h
@@ -159,13 +169,22 @@ TEST_EXTENSIONS = .shader_test
 
 if BUILD_TESTS
 check_PROGRAMS = $(vkd3d_tests) $(vkd3d_cross_tests) $(vkd3d_shader_runners)
-TESTS = $(vkd3d_tests) $(vkd3d_cross_tests)
+TESTS = $(vkd3d_tests) $(vkd3d_cross_tests) $(vkd3d_shader_tests)
 tests_d3d12_LDADD = $(LDADD) @PTHREAD_LIBS@ @VULKAN_LIBS@
 tests_d3d12_invalid_usage_LDADD = $(LDADD) @VULKAN_LIBS@
 tests_shader_runner_d3d12_LDADD = $(LDADD) @VULKAN_LIBS@
 tests_vkd3d_api_LDADD = libvkd3d.la @VULKAN_LIBS@
 tests_vkd3d_shader_api_LDADD = libvkd3d-shader.la
 SHADER_TEST_LOG_COMPILER = tests/shader_runner_d3d12
+XFAIL_TESTS = \
+	tests/swizzle-0.shader_test \
+	tests/swizzle-1.shader_test \
+	tests/swizzle-2.shader_test \
+	tests/swizzle-3.shader_test \
+	tests/swizzle-4.shader_test \
+	tests/swizzle-5.shader_test \
+	tests/swizzle-6.shader_test \
+	tests/swizzle-7.shader_test
 endif
 
 if BUILD_DEMOS
diff --git a/tests/swizzle-0.shader_test b/tests/swizzle-0.shader_test
new file mode 100644
index 00000000..9be141cf
--- /dev/null
+++ b/tests/swizzle-0.shader_test
@@ -0,0 +1,15 @@
+[pixel shader]
+uniform float4 color;
+
+float4 main() : sv_target
+{
+    float4 ret = color;
+    ret.gb = ret.ra;
+    ret.ra = float2(0.0101, 0.0404);
+    return ret;
+}
+
+[test]
+uniform 0 float4 0.0303 0.08 0.07 0.0202
+draw quad
+probe all rgba (0.0101, 0.0303, 0.0202, 0.0404)
diff --git a/tests/swizzle-1.shader_test b/tests/swizzle-1.shader_test
new file mode 100644
index 00000000..40cdc010
--- /dev/null
+++ b/tests/swizzle-1.shader_test
@@ -0,0 +1,11 @@
+[pixel shader]
+float4 main() : SV_target
+{
+    float4 ret = float4(0.1, 0.2, 0.3, 0.4);
+    ret.wyz.yx = float2(0.5, 0.6).yx;
+    return ret;
+}
+
+[test]
+draw quad
+probe all rgba (0.1, 0.6, 0.3, 0.5)
diff --git a/tests/swizzle-2.shader_test b/tests/swizzle-2.shader_test
new file mode 100644
index 00000000..b07134c6
--- /dev/null
+++ b/tests/swizzle-2.shader_test
@@ -0,0 +1,11 @@
+[pixel shader]
+float4 main() : SV_target
+{
+    float4 ret;
+    ret.zwyx = float4(0.1, 0.2, 0.3, 0.4);
+    return ret;
+}
+
+[test]
+draw quad
+probe all rgba (0.4, 0.3, 0.1, 0.2)
diff --git a/tests/swizzle-3.shader_test b/tests/swizzle-3.shader_test
new file mode 100644
index 00000000..1ecf5a5c
--- /dev/null
+++ b/tests/swizzle-3.shader_test
@@ -0,0 +1,14 @@
+[pixel shader]
+float4 main() : SV_target
+{
+    float4 ret;
+    ret.yw.y = 0.1;
+    ret.xzy.yz.y.x = 0.2;
+    ret.yzwx.yzwx.wz.y = 0.3;
+    ret.zxy.xyz.zxy.xy.y = 0.4;
+    return ret;
+}
+
+[test]
+draw quad
+probe all rgba (0.3, 0.2, 0.4, 0.1)
diff --git a/tests/swizzle-4.shader_test b/tests/swizzle-4.shader_test
new file mode 100644
index 00000000..c09fa515
--- /dev/null
+++ b/tests/swizzle-4.shader_test
@@ -0,0 +1,13 @@
+[pixel shader]
+float4 main() : SV_target
+{
+    float4 ret;
+    ret.yxz.yx = float2(0.1, 0.2);
+    ret.w.x = 0.3;
+    ret.wzyx.zyx.yx.x = 0.4;
+    return ret;
+}
+
+[test]
+draw quad
+probe all rgba (0.1, 0.2, 0.4, 0.3)
diff --git a/tests/swizzle-5.shader_test b/tests/swizzle-5.shader_test
new file mode 100644
index 00000000..5a3ee1db
--- /dev/null
+++ b/tests/swizzle-5.shader_test
@@ -0,0 +1,10 @@
+[pixel shader]
+float4 main() : SV_target
+{
+    float4 ret = float4(0.1, 0.2, 0.3, 0.4).ywxz.zyyz;
+    return ret;
+}
+
+[test]
+draw quad
+probe all rgba (0.1, 0.4, 0.4, 0.1)
diff --git a/tests/swizzle-6.shader_test b/tests/swizzle-6.shader_test
new file mode 100644
index 00000000..04251c65
--- /dev/null
+++ b/tests/swizzle-6.shader_test
@@ -0,0 +1,12 @@
+[pixel shader]
+float4 main() : SV_target
+{
+    float4 ret = float4(0.1, 0.2, 0.3, 0.4);
+    ret.yxwz = ret;
+    ret = ret.wyzx;
+    return ret;
+}
+
+[test]
+draw quad
+probe all rgba (0.3, 0.1, 0.4, 0.2)
diff --git a/tests/swizzle-7.shader_test b/tests/swizzle-7.shader_test
new file mode 100644
index 00000000..15a4cd07
--- /dev/null
+++ b/tests/swizzle-7.shader_test
@@ -0,0 +1,11 @@
+[pixel shader]
+float4 main() : SV_target
+{
+    float4 ret;
+    ret.xyzw.xyzw = float4(0.1, 0.2, 0.3, 0.4);
+    return ret;
+}
+
+[test]
+draw quad
+probe all rgba (0.1, 0.2, 0.3, 0.4)
-- 
2.28.0




More information about the wine-devel mailing list