tests: Test how matrix types interact with semantics.

Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Giovanni Mascellani 2022-06-08 18:18:40 -05:00 committed by Alexandre Julliard
parent f821a1b29a
commit 41df40b4ed
2 changed files with 103 additions and 0 deletions

View File

@ -108,6 +108,7 @@ vkd3d_shader_tests = \
tests/hlsl-vector-indexing-uniform.shader_test \
tests/logic-operations.shader_test \
tests/math.shader_test \
tests/matrix-semantics.shader_test \
tests/multiple-rt.shader_test \
tests/nointerpolation.shader_test \
tests/pow.shader_test \

View File

@ -0,0 +1,102 @@
[pixel shader]
float4x1 main() : sv_target
{
return float4(1.0, 2.0, 3.0, 4.0);
}
[test]
todo draw quad
probe all rgba (1.0, 2.0, 3.0, 4.0)
[pixel shader]
row_major float1x4 main() : sv_target
{
return float4(1.0, 2.0, 3.0, 4.0);
}
[test]
todo draw quad
probe all rgba (1.0, 2.0, 3.0, 4.0)
[require]
shader model >= 4.0
[render target 0]
format r32 float
size (640, 480)
[render target 1]
format r32 float
size (640, 480)
[render target 2]
format r32 float
size (640, 480)
[render target 3]
format r32 float
size (640, 480)
[pixel shader]
row_major float4x1 main() : sv_target
{
return float4(1.0, 2.0, 3.0, 4.0);
}
[test]
todo draw quad
probe render target 0 all r (1.0)
probe render target 1 all r (2.0)
probe render target 2 all r (3.0)
probe render target 3 all r (4.0)
[pixel shader]
float1x4 main() : sv_target
{
return float4(1.0, 2.0, 3.0, 4.0);
}
[test]
todo draw quad
probe render target 0 all r (1.0)
probe render target 1 all r (2.0)
probe render target 2 all r (3.0)
probe render target 3 all r (4.0)
[pixel shader fail todo]
void main(out float1x2 x : sv_target0, out float1x2 y : sv_target1)
{
x = float2(1.0, 2.0);
y = float2(5.0, 6.0);
}
[pixel shader]
void main(out float1x2 x : sv_target0, out float1x2 y : sv_target2)
{
x = float2(1.0, 2.0);
y = float2(5.0, 6.0);
}
[test]
todo draw quad
probe render target 0 all r (1.0)
probe render target 1 all r (2.0)
probe render target 2 all r (5.0)
probe render target 3 all r (6.0)
[render target 0]
format r32g32b32a32 float
size (640, 480)
[pixel shader]
void main(out row_major float1x4 x : sv_target0, out float1x2 y : sv_target1)
{
x = float4(1.0, 2.0, 3.0, 4.0);
y = float2(5.0, 6.0);
}
[test]
todo draw quad
probe render target 0 all rgba (1.0, 2.0, 3.0, 4.0)
probe render target 1 all r (5.0)
probe render target 2 all r (6.0)