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).
79 lines
1.6 KiB
Plaintext
79 lines
1.6 KiB
Plaintext
[pixel shader todo(sm<4)]
|
|
uniform float4 x;
|
|
|
|
float4 main() : sv_target
|
|
{
|
|
if (x.x == 9.0f)
|
|
discard;
|
|
return x;
|
|
}
|
|
|
|
[test]
|
|
uniform 0 float4 1 2 3 4
|
|
todo(sm<4 | glsl) draw quad
|
|
probe (0, 0) rgba (1, 2, 3, 4)
|
|
uniform 0 float4 9 8 7 6
|
|
todo(sm<4 | glsl) draw quad
|
|
probe (0, 0) rgba (1, 2, 3, 4)
|
|
|
|
[require]
|
|
shader model >= 3.0
|
|
|
|
% Check that derivatives are still computed after discarding
|
|
% other pixels in the same quad
|
|
[pixel shader todo(sm<4)]
|
|
float4 main(float4 pos : sv_position) : sv_target
|
|
{
|
|
if (frac((floor(pos.x) + floor(pos.y)) / 2) == 0.5)
|
|
discard;
|
|
return float4(ddx(pos.x), ddx(pos.y), ddy(pos.x), ddy(pos.y));
|
|
}
|
|
|
|
[test]
|
|
todo(sm<4 | glsl) draw quad
|
|
probe (0, 0) rgba (1, 0, 0, 1)
|
|
probe (1, 0) rgba (1, 2, 3, 4)
|
|
probe (0, 1) rgba (1, 2, 3, 4)
|
|
probe (1, 1) rgba (1, 0, 0, 1)
|
|
probe (2, 0) rgba (1, 0, 0, 1)
|
|
probe (3, 0) rgba (1, 2, 3, 4)
|
|
probe (2, 1) rgba (1, 2, 3, 4)
|
|
probe (3, 1) rgba (1, 0, 0, 1)
|
|
|
|
[require]
|
|
shader model >= 5.0
|
|
|
|
[uav 1]
|
|
format r32 float
|
|
size (2d, 2, 1)
|
|
|
|
0.0 0.0
|
|
|
|
% Check that side effects stop happening after discard
|
|
[pixel shader]
|
|
uniform float4 x;
|
|
RWTexture2D<float> y : register(u1);
|
|
|
|
float4 main(float4 pos : sv_position) : sv_target
|
|
{
|
|
if (pos.x == 0.5 && pos.y == 0.5)
|
|
y[uint2(0, 0)] += 1;
|
|
if (x.x == 9.0f)
|
|
discard;
|
|
if (pos.x == 0.5 && pos.y == 0.5)
|
|
y[uint2(1, 0)] += 1;
|
|
return x;
|
|
}
|
|
|
|
[test]
|
|
uniform 0 float4 1 2 3 4
|
|
todo(glsl) draw quad
|
|
probe (0, 0) rgba (1, 2, 3, 4)
|
|
probe uav 1 (0, 0) r (1.0)
|
|
probe uav 1 (1, 0) r (1.0)
|
|
uniform 0 float4 9 8 7 6
|
|
todo(glsl) draw quad
|
|
probe (0, 0) rgba (1, 2, 3, 4)
|
|
probe uav 1 (0, 0) r (2.0)
|
|
probe uav 1 (1, 0) r (1.0)
|