tests/shader_runner_d3d12: Check whether the d3d12 device supports geometry shaders.

This commit is contained in:
Henri Verbeet
2025-08-04 17:24:16 +02:00
parent 47a183c75b
commit ce20f9d4b2
Notes: Henri Verbeet 2025-08-06 13:02:39 +02:00
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1668
4 changed files with 35 additions and 34 deletions

View File

@@ -405,15 +405,15 @@ void main(triangle vs_out input[3], inout TriangleStream<gs_out> 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<gs_out> 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<gs_out> 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)