[require]
shader model >= 5.0
depth-bounds

[rtv 0]
size (2d, 640, 480)

[uav 1]
format r32-float
size (buffer, 1)
0.0

[dsv]
size (2d, 640, 480)

[vertex shader]
RWBuffer<float> u : register(u1);
float4 main(float4 position : position) : sv_position
{
    u[0] = 0.0;
    return float4(position.xy, 1.0, 1.0);
}

[pixel shader]
RWBuffer<float> u : register(u1);
    [earlydepthstencil]
float4 main() : sv_target
{
    u[0] = 1.0;
    return float4(1, 1, 1, 1);
}

[test]
depth-bounds 0.3 0.6
depth greater equal

clear rtv 0 0.0 0.0 0.0 0.0
clear dsv 0.0
draw quad
probe (0, 0) f32(0, 0, 0, 0)
probe uav 1 (0) f32(0.0)

clear rtv 0 0.0 0.0 0.0 0.0
clear dsv 0.3
draw quad
probe (0, 0) f32(1, 1, 1, 1)
probe uav 1 (0) f32(1.0)

clear rtv 0 0.0 0.0 0.0 0.0
clear dsv 0.5
draw quad
probe (0, 0) f32(1, 1, 1, 1)
probe uav 1 (0) f32(1.0)

clear rtv 0 0.0 0.0 0.0 0.0
clear dsv 0.6
draw quad
probe (0, 0) f32(1, 1, 1, 1)
probe uav 1 (0) f32(1.0)

clear rtv 0 0.0 0.0 0.0 0.0
clear dsv 1.0
draw quad
probe (0, 0) f32(0, 0, 0, 0)
probe uav 1 (0) f32(0.0)
