tests: Add a test with non-trivial control flow.

This commit is contained in:
Giovanni Mascellani
2024-01-15 12:08:56 +01:00
committed by Alexandre Julliard
parent 83851133c5
commit 6cb7487fb0
Notes: Alexandre Julliard 2024-01-18 23:20:24 +01:00
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Henri Verbeet (@hverbeet)
Approved-by: Alexandre Julliard (@julliard)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/568

View File

@ -28,6 +28,40 @@ probe ( 0, 0, 159, 480) rgba (10.0, 35.0, 0.0, 0.0)
probe (161, 0, 479, 480) rgba (10.0, 38.0, 0.0, 0.0) probe (161, 0, 479, 480) rgba (10.0, 38.0, 0.0, 0.0)
probe (481, 0, 640, 480) rgba ( 5.0, 10.0, 0.0, 0.0) probe (481, 0, 640, 480) rgba ( 5.0, 10.0, 0.0, 0.0)
[require]
shader model >= 4.0
% Identical to the previous, except we prevent DXC from unrolling the
% loop so we can test non-trivial control flow
[pixel shader]
uniform uint iter;
float4 main(float tex : texcoord) : sv_target
{
int i;
float x = 0.0;
for (i = 0; i < iter; i++)
{
x += i;
if (tex > 0.5 && i == 5)
break;
if (tex > -0.5 && i >= 7)
continue;
x -= 1;
}
return float4(i, x, 0.0, 0.0);
}
[test]
uniform 0 uint4 10 0 0 0
todo(sm>=6) draw quad
probe ( 0, 0, 159, 480) rgba (10.0, 35.0, 0.0, 0.0)
probe (161, 0, 479, 480) rgba (10.0, 38.0, 0.0, 0.0)
probe (481, 0, 640, 480) rgba ( 5.0, 10.0, 0.0, 0.0)
[require]
% Reset requirements
[pixel shader] [pixel shader]
float4 main(float tex : texcoord) : sv_target float4 main(float tex : texcoord) : sv_target
{ {