mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2024-11-21 16:46:41 -08:00
b701f8d393
The used UAV formats are explicitly added in the [require] section of every test that uses them. Some of these tests were failing on Intel UHD graphics 770 because of missing support for additional UAV load types, explicitly requiring these formats allows these tests to be skipped.
80 lines
1.6 KiB
Plaintext
80 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
|
|
format r32-float uav-load
|
|
|
|
[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)
|