tests: Test textures in initializers.

Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Francisco Casas 2022-05-10 15:08:30 +02:00 committed by Alexandre Julliard
parent 719e1bad1d
commit 1fc44e7be4
2 changed files with 110 additions and 0 deletions

View File

@ -79,6 +79,7 @@ vkd3d_shader_tests = \
tests/hlsl-initializer-invalid-arg-count.shader_test \
tests/hlsl-initializer-implicit-array.shader_test \
tests/hlsl-initializer-local-array.shader_test \
tests/hlsl-initializer-objects.shader_test \
tests/hlsl-initializer-nested.shader_test \
tests/hlsl-initializer-numeric.shader_test \
tests/hlsl-initializer-matrix.shader_test \

View File

@ -0,0 +1,109 @@
[require]
shader model >= 4.0
[texture 0]
size (3, 3)
0.1 0.1 0.1 0.1 0.2 0.2 0.2 0.2 0.3 0.3 0.3 0.3
0.4 0.4 0.4 0.4 0.5 0.5 0.5 0.5 0.6 0.6 0.6 0.6
0.7 0.7 0.7 0.7 0.8 0.8 0.8 0.8 0.9 0.9 0.9 0.9
[texture 1]
size (2, 2)
0.1 0.1 0.1 0.0 0.2 0.2 0.2 0.0
0.4 0.4 0.4 0.0 0.5 0.5 0.5 0.0
[pixel shader]
Texture2D tex1;
Texture2D tex2;
float4 main() : sv_target
{
Texture2D q[2] = {tex1, tex2};
return q[0].Load(int3(0, 0, 0)) + q[1].Load(int3(0, 0, 0));
}
[test]
todo draw quad
todo probe all rgba (0.2, 0.2, 0.2, 0.1)
[pixel shader]
Texture2D tex;
struct foo
{
float2 aa;
Texture2D bb;
Texture2D cc;
float4 dd;
};
float4 main() : sv_target
{
struct foo q = {10, 20, tex, tex, 30, 40, 50, 60};
return q.bb.Load(int3(2, 0, 0)) + q.cc.Load(int3(1, 2, 0)) + q.dd;
}
[test]
todo draw quad
todo probe all rgba (31.1, 41.1, 51.1, 61.1) 1
[pixel shader]
Texture2D tex1;
Texture2D tex2;
struct foo
{
float2 aa;
Texture2D bb[2]; // NOTE: this cannot be initialized in shader model >= 5.1
float4 cc;
};
float4 main() : sv_target
{
struct foo q = {10, 20, tex1, tex2, 30, 40, 50, 60};
return q.bb[0].Load(int3(0, 0, 0)) + q.bb[1].Load(int3(1, 1, 0)) + q.cc;
}
[pixel shader fail todo]
Texture2D tex;
struct foo
{
float2 aa;
Texture2D bb;
Texture2D cc;
float4 dd;
};
float4 main() : sv_target
{
struct foo q = {10, 20, tex, 30, 40, 50, 60};
return 0.0;
}
[pixel shader fail todo]
Texture2D tex;
struct foo
{
float2 aa;
Texture2D bb;
Texture2D cc;
float4 dd;
};
float4 main() : sv_target
{
struct foo q = {10, 20, tex, tex, tex, 30, 40, 50, 60};
return 0.0;
}