tests: Test initializer argument flattening.

Signed-off-by: Francisco Casas <fcasas@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Francisco Casas 2022-02-03 23:44:24 +01:00 committed by Alexandre Julliard
parent e3d55e315b
commit 832d6b6702
2 changed files with 75 additions and 0 deletions

View File

@ -68,6 +68,7 @@ vkd3d_shader_tests = \
tests/hlsl-function-overload.shader_test \
tests/hlsl-gather-offset.shader_test \
tests/hlsl-gather.shader_test \
tests/hlsl-initializer-flatten.shader_test \
tests/hlsl-initializer-invalid-arg-count.shader_test \
tests/hlsl-initializer-local-array.shader_test \
tests/hlsl-initializer-nested.shader_test \
@ -303,6 +304,7 @@ XFAIL_TESTS = \
tests/cast-to-int.shader_test \
tests/cast-to-uint.shader_test \
tests/hlsl-array-dimension.shader_test \
tests/hlsl-initializer-flatten.shader_test \
tests/hlsl-initializer-invalid-arg-count.shader_test \
tests/hlsl-initializer-local-array.shader_test \
tests/hlsl-initializer-nested.shader_test \

View File

@ -0,0 +1,73 @@
[pixel shader]
float4 main() : sv_target
{
float4 aa = {1, float2(2, 3), 4};
return aa;
}
[test]
draw quad
probe all rgba (1, 2, 3, 4)
[pixel shader]
struct stu
{
int3 aa;
float4 bb;
};
float4 main() : sv_target
{
struct stu foo = {1, 2, float2(3, 4), int3(5, 6, 7)};
return foo.bb;
}
[test]
draw quad
probe all rgba (4, 5, 6, 7)
[pixel shader]
float4 main() : sv_target
{
int4 aa = {10, 20, 30, 40};
float4 foo[3] = {1, aa, aa, 2, 3, 4};
return foo[1];
}
[test]
draw quad
probe all rgba (40, 10, 20, 30)
[pixel shader]
struct stu
{
float aa;
int bb;
};
float4 main() : sv_target
{
struct stu foo = {2.0, 3};
float4 f = {1.0, foo, 4.0};
return f;
}
[test]
draw quad
probe all rgba (1.0, 2.0, 3.0, 4.0)
[pixel shader]
float4 main() : sv_target
{
int arr[3] = {2, 3, 4};
float4 f = {1.0, arr};
return f;
}
[test]
draw quad
probe all rgba (1.0, 2.0, 3.0, 4.0)