mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2024-11-21 16:46:41 -08:00
d3ba810c98
This is simply unnecessary and wastes time. As part of this, simply remove the "all" directive. Only for a couple of tests is it even potentially interesting to validate all pixels (e.g. nointerpolation.shader_test), and for those "all" is replaced with an explicit (0, 0, 640, 480) rect. In all other cases we just probe (0, 0).
257 lines
4.5 KiB
Plaintext
257 lines
4.5 KiB
Plaintext
% Test early return from the entry point.
|
|
|
|
[pixel shader]
|
|
|
|
float4 main() : sv_target
|
|
{
|
|
return float4(0.1, 0.2, 0.3, 0.4);
|
|
return float4(0.5, 0.6, 0.7, 0.8);
|
|
}
|
|
|
|
[test]
|
|
todo(glsl) draw quad
|
|
probe (0, 0) rgba (0.1, 0.2, 0.3, 0.4)
|
|
|
|
[pixel shader]
|
|
|
|
void main(out float4 ret : sv_target)
|
|
{
|
|
ret = float4(0.1, 0.2, 0.3, 0.4);
|
|
return;
|
|
ret = float4(0.5, 0.6, 0.7, 0.8);
|
|
}
|
|
|
|
[test]
|
|
todo(glsl) draw quad
|
|
probe (0, 0) rgba (0.1, 0.2, 0.3, 0.4)
|
|
|
|
[pixel shader todo(sm<4)]
|
|
uniform float f;
|
|
|
|
float4 main() : sv_target
|
|
{
|
|
if (f < 0.5)
|
|
return float4(0.1, 0.2, 0.3, 0.4);
|
|
return float4(0.5, 0.6, 0.7, 0.8);
|
|
}
|
|
|
|
[test]
|
|
uniform 0 float 0.2
|
|
todo(sm<4 | glsl) draw quad
|
|
probe (0, 0) rgba (0.1, 0.2, 0.3, 0.4)
|
|
uniform 0 float 0.8
|
|
todo(sm<4 | glsl) draw quad
|
|
probe (0, 0) rgba (0.5, 0.6, 0.7, 0.8)
|
|
|
|
[pixel shader todo(sm<4)]
|
|
uniform float f;
|
|
|
|
void main(out float4 ret : sv_target)
|
|
{
|
|
ret = float4(0.1, 0.2, 0.3, 0.4);
|
|
if (f < 0.5)
|
|
{
|
|
ret += 0.1;
|
|
}
|
|
else
|
|
{
|
|
return;
|
|
ret += 0.3;
|
|
}
|
|
ret += 0.1;
|
|
}
|
|
|
|
[test]
|
|
uniform 0 float 0.2
|
|
todo(sm<4 | glsl) draw quad
|
|
probe (0, 0) rgba (0.3, 0.4, 0.5, 0.6)
|
|
uniform 0 float 0.8
|
|
todo(sm<4 | glsl) draw quad
|
|
probe (0, 0) rgba (0.1, 0.2, 0.3, 0.4)
|
|
|
|
[pixel shader todo(sm<4)]
|
|
uniform float f;
|
|
|
|
void main(out float4 ret : sv_target)
|
|
{
|
|
ret = float4(0.1, 0.2, 0.3, 0.4);
|
|
if (f < 0.3)
|
|
{
|
|
return;
|
|
}
|
|
ret += 0.1;
|
|
if (f < 0.7)
|
|
{
|
|
return;
|
|
}
|
|
ret += 0.3;
|
|
}
|
|
|
|
[test]
|
|
uniform 0 float 0.1
|
|
todo(sm<4 | glsl) draw quad
|
|
probe (0, 0) rgba (0.1, 0.2, 0.3, 0.4) 1
|
|
uniform 0 float 0.5
|
|
todo(sm<4 | glsl) draw quad
|
|
probe (0, 0) rgba (0.2, 0.3, 0.4, 0.5) 1
|
|
uniform 0 float 0.9
|
|
todo(sm<4 | glsl) draw quad
|
|
probe (0, 0) rgba (0.5, 0.6, 0.7, 0.8) 1
|
|
|
|
[pixel shader todo(sm<4)]
|
|
uniform float f;
|
|
|
|
void main(out float4 ret : sv_target)
|
|
{
|
|
ret = float4(0.1, 0.2, 0.3, 0.4);
|
|
if (f < 0.7)
|
|
{
|
|
if (f < 0.3)
|
|
return;
|
|
ret += 0.1;
|
|
}
|
|
ret += 0.3;
|
|
}
|
|
|
|
[test]
|
|
uniform 0 float 0.1
|
|
todo(sm<4 | glsl) draw quad
|
|
probe (0, 0) rgba (0.1, 0.2, 0.3, 0.4) 1
|
|
uniform 0 float 0.5
|
|
todo(sm<4 | glsl) draw quad
|
|
probe (0, 0) rgba (0.5, 0.6, 0.7, 0.8) 1
|
|
uniform 0 float 0.9
|
|
todo(sm<4 | glsl) draw quad
|
|
probe (0, 0) rgba (0.4, 0.5, 0.6, 0.7) 1
|
|
|
|
[pixel shader todo(sm<4)]
|
|
void main(out float4 ret : sv_target)
|
|
{
|
|
ret = float4(0.1, 0.2, 0.3, 0.4);
|
|
for (;;)
|
|
{
|
|
ret *= 2;
|
|
return;
|
|
ret *= 3;
|
|
}
|
|
ret += 0.1;
|
|
}
|
|
|
|
[test]
|
|
todo(sm<4 | glsl) draw quad
|
|
probe (0, 0) rgba (0.2, 0.4, 0.6, 0.8)
|
|
|
|
[pixel shader todo(sm<4)]
|
|
uniform float f;
|
|
|
|
void main(out float4 ret : sv_target)
|
|
{
|
|
int i;
|
|
|
|
ret = 0.1;
|
|
for (i = 0; i < 4; ++i)
|
|
{
|
|
if (ret.x > f)
|
|
return;
|
|
ret *= 2;
|
|
}
|
|
ret = 0.9;
|
|
}
|
|
|
|
[test]
|
|
uniform 0 float 0.0
|
|
todo(sm<4 | glsl) draw quad
|
|
probe (0, 0) rgba (0.1, 0.1, 0.1, 0.1) 1
|
|
|
|
uniform 0 float 0.1
|
|
todo(sm<4 | glsl) draw quad
|
|
probe (0, 0) rgba (0.2, 0.2, 0.2, 0.2) 1
|
|
|
|
uniform 0 float 0.3
|
|
todo(sm<4 | glsl) draw quad
|
|
probe (0, 0) rgba (0.4, 0.4, 0.4, 0.4) 1
|
|
|
|
uniform 0 float 0.7
|
|
todo(sm<4 | glsl) draw quad
|
|
probe (0, 0) rgba (0.8, 0.8, 0.8, 0.8) 1
|
|
|
|
uniform 0 float 0.9
|
|
todo(sm<4 | glsl) draw quad
|
|
probe (0, 0) rgba (0.9, 0.9, 0.9, 0.9) 1
|
|
|
|
[pixel shader todo(sm<4)]
|
|
uniform float f;
|
|
|
|
void main(out float4 ret : sv_target)
|
|
{
|
|
if (f < 0.5)
|
|
{
|
|
ret = 0.1;
|
|
for (;;)
|
|
{
|
|
ret *= 2;
|
|
return;
|
|
}
|
|
ret *= 3;
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
ret = 0.4;
|
|
}
|
|
ret = 0.5;
|
|
}
|
|
|
|
[test]
|
|
uniform 0 float 0.2
|
|
todo(sm<4 | glsl) draw quad
|
|
probe (0, 0) rgba (0.2, 0.2, 0.2, 0.2)
|
|
uniform 0 float 0.8
|
|
todo(sm<4 | glsl) draw quad
|
|
probe (0, 0) rgba (0.5, 0.5, 0.5, 0.5)
|
|
|
|
[pixel shader todo(sm<4)]
|
|
|
|
uniform float4 f[3];
|
|
|
|
void main(out float4 ret : sv_target)
|
|
{
|
|
int i, j;
|
|
|
|
ret = 0.1;
|
|
for (i = 0; i < 3; ++i)
|
|
{
|
|
for (j = 0; j < 3; ++j)
|
|
{
|
|
if (ret.x > f[j].x)
|
|
return;
|
|
}
|
|
ret *= 2;
|
|
}
|
|
ret = 0.9;
|
|
}
|
|
|
|
[test]
|
|
|
|
uniform 0 float4 0.3 0.0 0.0 0.0
|
|
uniform 4 float4 0.0 0.0 0.0 0.0
|
|
uniform 8 float4 0.1 0.0 0.0 0.0
|
|
todo(sm<4 | glsl) draw quad
|
|
probe (0, 0) rgba (0.1, 0.1, 0.1, 0.1) 1
|
|
|
|
uniform 4 float4 0.35 0.0 0.0 0.0
|
|
todo(sm<4 | glsl) draw quad
|
|
probe (0, 0) rgba (0.2, 0.2, 0.2, 0.2) 1
|
|
|
|
uniform 8 float4 0.5 0.0 0.0 0.0
|
|
todo(sm<4 | glsl) draw quad
|
|
probe (0, 0) rgba (0.4, 0.4, 0.4, 0.4) 1
|
|
|
|
uniform 0 float4 1.0 0.0 0.0 0.0
|
|
todo(sm<4 | glsl) draw quad
|
|
probe (0, 0) rgba (0.4, 0.4, 0.4, 0.4) 1
|
|
|
|
uniform 4 float4 2.0 0.0 0.0 0.0
|
|
todo(sm<4 | glsl) draw quad
|
|
probe (0, 0) rgba (0.9, 0.9, 0.9, 0.9) 1
|