diff --git a/Makefile.am b/Makefile.am index 38272547..741e553c 100644 --- a/Makefile.am +++ b/Makefile.am @@ -93,6 +93,7 @@ vkd3d_shader_tests = \ tests/hlsl/d3dcolor-to-ubyte4.shader_test \ tests/hlsl/ddxddy.shader_test \ tests/hlsl/default-values.shader_test \ + tests/hlsl/depth-bounds.shader_test \ tests/hlsl/depth-out.shader_test \ tests/hlsl/determinant.shader_test \ tests/hlsl/discard.shader_test \ diff --git a/tests/hlsl/depth-bounds.shader_test b/tests/hlsl/depth-bounds.shader_test new file mode 100644 index 00000000..7702403e --- /dev/null +++ b/tests/hlsl/depth-bounds.shader_test @@ -0,0 +1,65 @@ +[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 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 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 +todo(glsl) draw quad +todo(d3d12) probe (0, 0) rgba(0, 0, 0, 0) +todo probe uav 1 (0) r(0.0) + +clear rtv 0 0.0 0.0 0.0 0.0 +clear dsv 0.3 +todo(glsl) draw quad +probe (0, 0) rgba(1, 1, 1, 1) +probe uav 1 (0) r(1.0) + +clear rtv 0 0.0 0.0 0.0 0.0 +clear dsv 0.5 +todo(glsl) draw quad +probe (0, 0) rgba(1, 1, 1, 1) +probe uav 1 (0) r(1.0) + +clear rtv 0 0.0 0.0 0.0 0.0 +clear dsv 0.6 +todo(glsl) draw quad +probe (0, 0) rgba(1, 1, 1, 1) +probe uav 1 (0) r(1.0) + +clear rtv 0 0.0 0.0 0.0 0.0 +clear dsv 1.0 +todo(glsl) draw quad +todo(d3d12) probe (0, 0) rgba(0, 0, 0, 0) +todo probe uav 1 (0) r(0.0)