Signed-off-by: Zebediah Figura zfigura@codeweavers.com --- Makefile.am | 2 ++ tests/hlsl-array-dimension.shader_test | 16 ++++++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 tests/hlsl-array-dimension.shader_test
diff --git a/Makefile.am b/Makefile.am index efe0c7cc..7911a8ea 100644 --- a/Makefile.am +++ b/Makefile.am @@ -51,6 +51,7 @@ vkd3d_shader_runners = \
vkd3d_shader_tests = \ tests/conditional.shader_test \ + tests/hlsl-array-dimension.shader_test \ tests/hlsl-comma.shader_test \ tests/hlsl-return-implicit-conversion.shader_test \ tests/hlsl-return-void.shader_test \ @@ -186,6 +187,7 @@ tests_vkd3d_shader_api_LDADD = libvkd3d-shader.la SHADER_TEST_LOG_COMPILER = tests/shader_runner_d3d12 XFAIL_TESTS = \ tests/conditional.shader_test \ + tests/hlsl-array-dimension.shader_test \ tests/hlsl-comma.shader_test \ tests/hlsl-return-implicit-conversion.shader_test \ tests/hlsl-return-void.shader_test \ diff --git a/tests/hlsl-array-dimension.shader_test b/tests/hlsl-array-dimension.shader_test new file mode 100644 index 00000000..fdb52b14 --- /dev/null +++ b/tests/hlsl-array-dimension.shader_test @@ -0,0 +1,16 @@ +# Test what kinds of expressions are valid array dimensions. +[pixel shader] +float4 main() : sv_target +{ + const int dim = 4; + float a[2 * 2] = {0.1, 0.2, 0.3, 0.4}; + float b[4.1] = a; + float c[dim] = b; + float d[true] = {c[0]}; + float e[65536]; + return float4(d[0], c[0], c[1], c[3]); +} + +[test] +draw quad +probe all rgba (0.1, 0.1, 0.2, 0.4)