From 70c51984c961e3cdbf1d69aba40e65eb91d16138 Mon Sep 17 00:00:00 2001 From: Giovanni Mascellani Date: Fri, 23 May 2025 23:22:49 +0200 Subject: [PATCH] tests/hlsl: Mark some tests in clip-cull-distance.shader_test as buggy on MoltenVK with d3d12. They either use geometry shaders or cull distances, which MoltenVK doesn't support. However d3d12 has no way to indicate they're unsupported, so the problem doesn't surface as a failed draw, but rather as a draw that doesn't do anything. --- tests/hlsl/clip-cull-distance.shader_test | 44 +++++++++++------------ 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/tests/hlsl/clip-cull-distance.shader_test b/tests/hlsl/clip-cull-distance.shader_test index 9f19e523b..01677524f 100644 --- a/tests/hlsl/clip-cull-distance.shader_test +++ b/tests/hlsl/clip-cull-distance.shader_test @@ -289,7 +289,7 @@ probe rtv 0 (160, 120) rgba(1.0, 1.0, 0.0, 1.0) probe rtv 0 (160, 240) rgba(1.0, 1.0, 0.0, 1.0) probe rtv 0 (160, 360) rgba(1.0, 1.0, 0.0, 1.0) probe rtv 0 (320, 120) rgba(1.0, 1.0, 0.0, 1.0) -probe rtv 0 (320, 240) rgba(0.0, 1.0, 0.0, 1.0) +bug(d3d12 & mvk) probe rtv 0 (320, 240) rgba(0.0, 1.0, 0.0, 1.0) probe rtv 0 (320, 360) rgba(1.0, 1.0, 0.0, 1.0) probe rtv 0 (480, 120) rgba(1.0, 1.0, 0.0, 1.0) probe rtv 0 (480, 240) rgba(1.0, 1.0, 0.0, 1.0) @@ -405,15 +405,15 @@ void main(triangle vs_out input[3], inout TriangleStream stream) [test] clear rtv 0 1.0 1.0 0.0 1.0 todo(sm<6) draw triangle strip 4 -probe rtv 0 (160, 120) rgba(1.0, 1.0, 0.0, 1.0) -probe rtv 0 (160, 240) rgba(1.0, 1.0, 0.0, 1.0) -probe rtv 0 (160, 360) rgba(1.0, 1.0, 0.0, 1.0) -probe rtv 0 (320, 120) rgba(1.0, 1.0, 0.0, 1.0) +bug(d3d12 & mvk) probe rtv 0 (160, 120) rgba(1.0, 1.0, 0.0, 1.0) +bug(d3d12 & mvk) probe rtv 0 (160, 240) rgba(1.0, 1.0, 0.0, 1.0) +bug(d3d12 & mvk) probe rtv 0 (160, 360) rgba(1.0, 1.0, 0.0, 1.0) +bug(d3d12 & mvk) probe rtv 0 (320, 120) rgba(1.0, 1.0, 0.0, 1.0) probe rtv 0 (320, 240) rgba(0.0, 1.0, 0.0, 1.0) -probe rtv 0 (320, 360) rgba(1.0, 1.0, 0.0, 1.0) -probe rtv 0 (480, 120) rgba(1.0, 1.0, 0.0, 1.0) -probe rtv 0 (480, 240) rgba(1.0, 1.0, 0.0, 1.0) -probe rtv 0 (480, 360) rgba(1.0, 1.0, 0.0, 1.0) +bug(d3d12 & mvk) probe rtv 0 (320, 360) rgba(1.0, 1.0, 0.0, 1.0) +bug(d3d12 & mvk) probe rtv 0 (480, 120) rgba(1.0, 1.0, 0.0, 1.0) +bug(d3d12 & mvk) probe rtv 0 (480, 240) rgba(1.0, 1.0, 0.0, 1.0) +bug(d3d12 & mvk) probe rtv 0 (480, 360) rgba(1.0, 1.0, 0.0, 1.0) % Now let's test cull distances for real: we remove the clip distances they % duplicate and use the geometry shader to create many little triangles around @@ -553,13 +553,13 @@ void main(triangle vs_out input[3], inout TriangleStream stream) clear rtv 0 1.0 1.0 0.0 1.0 todo(sm<6) draw triangle strip 4 probe rtv 0 (160, 120) rgba(0.0, 1.0, 0.0, 1.0) -probe rtv 0 (160, 240) rgba(1.0, 1.0, 0.0, 1.0) -probe rtv 0 (160, 360) rgba(1.0, 1.0, 0.0, 1.0) +bug(d3d12 & mvk) probe rtv 0 (160, 240) rgba(1.0, 1.0, 0.0, 1.0) +bug(d3d12 & mvk) probe rtv 0 (160, 360) rgba(1.0, 1.0, 0.0, 1.0) probe rtv 0 (320, 120) rgba(0.0, 1.0, 0.0, 1.0) probe rtv 0 (320, 240) rgba(0.0, 1.0, 0.0, 1.0) -probe rtv 0 (320, 360) rgba(1.0, 1.0, 0.0, 1.0) -probe rtv 0 (480, 120) rgba(1.0, 1.0, 0.0, 1.0) -probe rtv 0 (480, 240) rgba(1.0, 1.0, 0.0, 1.0) +bug(d3d12 & mvk) probe rtv 0 (320, 360) rgba(1.0, 1.0, 0.0, 1.0) +bug(d3d12 & mvk) probe rtv 0 (480, 120) rgba(1.0, 1.0, 0.0, 1.0) +bug(d3d12 & mvk) probe rtv 0 (480, 240) rgba(1.0, 1.0, 0.0, 1.0) probe rtv 0 (480, 360) rgba(0.0, 1.0, 0.0, 1.0) % Then enough to get rid of nearly all test points. @@ -625,12 +625,12 @@ void main(triangle vs_out input[3], inout TriangleStream stream) [test] clear rtv 0 1.0 1.0 0.0 1.0 todo(sm<6) draw triangle strip 4 -probe rtv 0 (160, 120) rgba(1.0, 1.0, 0.0, 1.0) -probe rtv 0 (160, 240) rgba(1.0, 1.0, 0.0, 1.0) -probe rtv 0 (160, 360) rgba(1.0, 1.0, 0.0, 1.0) -probe rtv 0 (320, 120) rgba(1.0, 1.0, 0.0, 1.0) +bug(d3d12 & mvk) probe rtv 0 (160, 120) rgba(1.0, 1.0, 0.0, 1.0) +bug(d3d12 & mvk) probe rtv 0 (160, 240) rgba(1.0, 1.0, 0.0, 1.0) +bug(d3d12 & mvk) probe rtv 0 (160, 360) rgba(1.0, 1.0, 0.0, 1.0) +bug(d3d12 & mvk) probe rtv 0 (320, 120) rgba(1.0, 1.0, 0.0, 1.0) probe rtv 0 (320, 240) rgba(0.0, 1.0, 0.0, 1.0) -probe rtv 0 (320, 360) rgba(1.0, 1.0, 0.0, 1.0) -probe rtv 0 (480, 120) rgba(1.0, 1.0, 0.0, 1.0) -probe rtv 0 (480, 240) rgba(1.0, 1.0, 0.0, 1.0) -bug(mesa<23.3) probe rtv 0 (480, 360) rgba(1.0, 1.0, 0.0, 1.0) +bug(d3d12 & mvk) probe rtv 0 (320, 360) rgba(1.0, 1.0, 0.0, 1.0) +bug(d3d12 & mvk) probe rtv 0 (480, 120) rgba(1.0, 1.0, 0.0, 1.0) +bug(d3d12 & mvk) probe rtv 0 (480, 240) rgba(1.0, 1.0, 0.0, 1.0) +bug(mesa<23.3 | d3d12 & mvk) probe rtv 0 (480, 360) rgba(1.0, 1.0, 0.0, 1.0)