tests: Test struct initializers.

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:18 +01:00 committed by Alexandre Julliard
parent dbcf063489
commit 40c9799d34
2 changed files with 86 additions and 0 deletions

View File

@ -70,6 +70,7 @@ vkd3d_shader_tests = \
tests/hlsl-gather.shader_test \
tests/hlsl-initializer-local-array.shader_test \
tests/hlsl-initializer-static-array.shader_test \
tests/hlsl-initializer-struct.shader_test \
tests/hlsl-intrinsic-override.shader_test \
tests/hlsl-invalid.shader_test \
tests/hlsl-majority-pragma.shader_test \
@ -299,6 +300,7 @@ XFAIL_TESTS = \
tests/hlsl-array-dimension.shader_test \
tests/hlsl-initializer-local-array.shader_test \
tests/hlsl-initializer-static-array.shader_test \
tests/hlsl-initializer-struct.shader_test \
tests/hlsl-bool-cast.shader_test \
tests/hlsl-duplicate-modifiers.shader_test \
tests/hlsl-for.shader_test \

View File

@ -0,0 +1,84 @@
[pixel shader]
struct stu
{
int3 aaa;
float3 bbb;
int2 ccc;
float4 ddd;
int eee;
};
float4 main() : sv_target
{
struct stu val =
{
11, 12, 13,
21, 22, 23,
31, 32,
41, 42, 43, 44,
51
};
return val.ddd;
}
[test]
draw quad
probe all rgba (41, 42, 43, 44)
[pixel shader]
struct stu
{
int3 aaa;
float3 bbb[2];
int2 ccc;
float4 ddd[3][2];
int eee;
};
float4 main() : sv_target
{
struct stu val =
{
11, 12, 13,
211, 212, 213, 221, 222, 223,
31, 32,
4111, 4112, 4113, 4114, 4121, 4122, 4123, 4124,
4211, 4212, 4213, 4214, 4221, 4222, 4223, 4224,
4311, 4312, 4313, 4314, 4321, 4322, 4323, 4324,
51
};
return val.ddd[2][0];
}
[test]
draw quad
probe all rgba (4311, 4312, 4313, 4314)
[pixel shader]
struct stu
{
int3 aaa;
struct
{
float4 foo;
int2 bar;
} bbb[3];
};
float4 main() : sv_target
{
struct stu val =
{
1, 2, 3,
11, 12, 13, 14, 15, 16,
21, 22, 23, 24, 25, 26,
31, 32, 33, 34, 35, 36
};
return val.bbb[1].foo;
}
[test]
draw quad
probe all rgba (21, 22, 23, 24)