diff --git a/Makefile.am b/Makefile.am index 5bcee677..84c7b859 100644 --- a/Makefile.am +++ b/Makefile.am @@ -68,6 +68,8 @@ vkd3d_shader_tests = \ tests/hlsl-function-overload.shader_test \ tests/hlsl-gather-offset.shader_test \ tests/hlsl-gather.shader_test \ + tests/hlsl-initializer-local-array.shader_test \ + tests/hlsl-initializer-static-array.shader_test \ tests/hlsl-intrinsic-override.shader_test \ tests/hlsl-invalid.shader_test \ tests/hlsl-majority-pragma.shader_test \ @@ -295,6 +297,8 @@ XFAIL_TESTS = \ tests/cast-to-int.shader_test \ tests/cast-to-uint.shader_test \ tests/hlsl-array-dimension.shader_test \ + tests/hlsl-initializer-local-array.shader_test \ + tests/hlsl-initializer-static-array.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-local-array.shader_test b/tests/hlsl-initializer-local-array.shader_test new file mode 100644 index 00000000..0862d4c9 --- /dev/null +++ b/tests/hlsl-initializer-local-array.shader_test @@ -0,0 +1,35 @@ +[pixel shader] +float4 main() : SV_TARGET +{ + float4 array_loc[3] = { + 11, 12, 13, 14, + 21, 22, 23, 24, + 31, 32, 33, 34 + }; + return array_loc[1]; +} + +[test] +draw quad +probe all rgba (21, 22, 23, 24) + + +[pixel shader] +float4 main() : SV_TARGET +{ + float4 array_loc[2][4] = { + 11, 12, 13, 14, + 21, 22, 23, 24, + 31, 32, 33, 34, + 41, 42, 43, 44, + 51, 52, 53, 54, + 61, 62, 63, 64, + 71, 72, 73, 74, + 81, 82, 83, 84, + }; + return array_loc[1][2]; +} + +[test] +draw quad +probe all rgba (71, 72, 73, 74) diff --git a/tests/hlsl-initializer-static-array.shader_test b/tests/hlsl-initializer-static-array.shader_test new file mode 100644 index 00000000..57733502 --- /dev/null +++ b/tests/hlsl-initializer-static-array.shader_test @@ -0,0 +1,37 @@ +[pixel shader] +static const float4 array_st[3] = { + 11, 12, 13, 14, + 21, 22, 23, 24, + 31, 32, 33, 34 +}; + +float4 main() : SV_TARGET +{ + return array_st[1]; +} + +[test] +draw quad +probe all rgba (21, 22, 23, 24) + + +[pixel shader] +static const float4 array_st[4][2] = { + 11, 12, 13, 14, + 21, 22, 23, 24, + 31, 32, 33, 34, + 41, 42, 43, 44, + 51, 52, 53, 54, + 61, 62, 63, 64, + 71, 72, 73, 74, + 81, 82, 83, 84, +}; + +float4 main() : SV_TARGET +{ + return array_st[2][1]; +} + +[test] +draw quad +probe all rgba (61, 62, 63, 64)