diff --git a/tests/hlsl/clip-cull-distance.shader_test b/tests/hlsl/clip-cull-distance.shader_test index 77797fc8a..a73588b35 100644 --- a/tests/hlsl/clip-cull-distance.shader_test +++ b/tests/hlsl/clip-cull-distance.shader_test @@ -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 -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) -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) +probe rtv 0 (160, 120) f32(1.0, 1.0, 0.0, 1.0) +probe rtv 0 (160, 240) f32(1.0, 1.0, 0.0, 1.0) +probe rtv 0 (160, 360) f32(1.0, 1.0, 0.0, 1.0) +probe rtv 0 (320, 120) f32(1.0, 1.0, 0.0, 1.0) +probe rtv 0 (320, 240) f32(0.0, 1.0, 0.0, 1.0) +probe rtv 0 (320, 360) f32(1.0, 1.0, 0.0, 1.0) +probe rtv 0 (480, 120) f32(1.0, 1.0, 0.0, 1.0) +probe rtv 0 (480, 240) f32(1.0, 1.0, 0.0, 1.0) +probe rtv 0 (480, 360) f32(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 @@ -552,15 +552,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(0.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) -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) +probe rtv 0 (160, 120) f32(0.0, 1.0, 0.0, 1.0) +probe rtv 0 (160, 240) f32(1.0, 1.0, 0.0, 1.0) +probe rtv 0 (160, 360) f32(1.0, 1.0, 0.0, 1.0) +probe rtv 0 (320, 120) f32(0.0, 1.0, 0.0, 1.0) +probe rtv 0 (320, 240) f32(0.0, 1.0, 0.0, 1.0) +probe rtv 0 (320, 360) f32(1.0, 1.0, 0.0, 1.0) +probe rtv 0 (480, 120) f32(1.0, 1.0, 0.0, 1.0) +probe rtv 0 (480, 240) f32(1.0, 1.0, 0.0, 1.0) +probe rtv 0 (480, 360) f32(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 -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) -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) +probe rtv 0 (160, 120) f32(1.0, 1.0, 0.0, 1.0) +probe rtv 0 (160, 240) f32(1.0, 1.0, 0.0, 1.0) +probe rtv 0 (160, 360) f32(1.0, 1.0, 0.0, 1.0) +probe rtv 0 (320, 120) f32(1.0, 1.0, 0.0, 1.0) +probe rtv 0 (320, 240) f32(0.0, 1.0, 0.0, 1.0) +probe rtv 0 (320, 360) f32(1.0, 1.0, 0.0, 1.0) +probe rtv 0 (480, 120) f32(1.0, 1.0, 0.0, 1.0) +probe rtv 0 (480, 240) f32(1.0, 1.0, 0.0, 1.0) +bug(mesa<23.3) probe rtv 0 (480, 360) f32(1.0, 1.0, 0.0, 1.0) diff --git a/tests/hlsl/geometry.shader_test b/tests/hlsl/geometry.shader_test index 243e2b5d8..d779b2734 100644 --- a/tests/hlsl/geometry.shader_test +++ b/tests/hlsl/geometry.shader_test @@ -62,11 +62,11 @@ float4 main(struct ps_data ps_input) : SV_Target [test] clear rtv 0 0.0 0.0 0.0 0.0 todo(glsl) draw point list 1 -bug(mvk) probe rtv 0 (320, 190) rgba(0.0, 0.0, 0.0, 0.0) -bug(mvk) probe rtv 0 (255, 240) rgba(0.0, 0.0, 0.0, 0.0) -bug(mvk) probe rtv 0 (320, 240) rgba(0.0, 1.0, 1.0, 1.0) -bug(mvk) probe rtv 0 (385, 240) rgba(0.0, 0.0, 0.0, 0.0) -bug(mvk) probe rtv 0 (320, 290) rgba(0.0, 0.0, 0.0, 0.0) +probe rtv 0 (320, 190) f32(0.0, 0.0, 0.0, 0.0) +probe rtv 0 (255, 240) f32(0.0, 0.0, 0.0, 0.0) +probe rtv 0 (320, 240) f32(0.0, 1.0, 1.0, 1.0) +probe rtv 0 (385, 240) f32(0.0, 0.0, 0.0, 0.0) +probe rtv 0 (320, 290) f32(0.0, 0.0, 0.0, 0.0) [require] shader model >= 5.0 diff --git a/tests/hlsl/primitive-id.shader_test b/tests/hlsl/primitive-id.shader_test index 7f8d8176a..f7637a7f7 100644 --- a/tests/hlsl/primitive-id.shader_test +++ b/tests/hlsl/primitive-id.shader_test @@ -67,7 +67,7 @@ float4 main(struct ps_data ps_input) : SV_Target } [test] -todo(glsl) bug(mvk) draw point list 1 +todo(glsl) draw point list 1 probe rtv 0 (320, 190) f32(0.0, 0.0, 0.0, 0.0) probe rtv 0 (255, 240) f32(0.0, 0.0, 0.0, 0.0) probe rtv 0 (319, 241) f32(0.0, 0.0, 1.0, 1.0) diff --git a/tests/shader_runner_d3d12.c b/tests/shader_runner_d3d12.c index e53f5674e..dead1e491 100644 --- a/tests/shader_runner_d3d12.c +++ b/tests/shader_runner_d3d12.c @@ -1112,7 +1112,8 @@ static void d3d12_runner_init_caps(struct d3d12_shader_runner *runner, runner->caps.maximum_shader_model = maximum_shader_model; runner->caps.shader_caps[SHADER_CAP_DEPTH_BOUNDS] = options2.DepthBoundsTestSupported; runner->caps.shader_caps[SHADER_CAP_FLOAT64] = options.DoublePrecisionFloatShaderOps; - runner->caps.shader_caps[SHADER_CAP_GEOMETRY_SHADER] = true; + if (is_geometry_shader_supported(device)) + runner->caps.shader_caps[SHADER_CAP_GEOMETRY_SHADER] = true; runner->caps.shader_caps[SHADER_CAP_INT64] = options1.Int64ShaderOps; runner->caps.shader_caps[SHADER_CAP_ROV] = options.ROVsSupported; runner->caps.shader_caps[SHADER_CAP_RT_VP_ARRAY_INDEX]