mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-09-12 18:50:22 -07:00
tests/shader_runner_d3d12: Check whether the d3d12 device supports geometry shaders.
This commit is contained in:
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
@@ -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)
|
||||
|
@@ -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
|
||||
|
@@ -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)
|
||||
|
@@ -1112,6 +1112,7 @@ 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;
|
||||
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;
|
||||
|
Reference in New Issue
Block a user