Signed-off-by: Zebediah Figura zfigura@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)