tests/shader_runner: Introduce a "tessellation-shader" cap.

Similar to how we have the "geometry-shader" cap. In principle shader
model 5+ implies support for tessellation shaders, but the Vulkan,
OpenGL, and Metal runners are able to support most of shader model 5+
without the underlying GPU (or API) necessarily supporting tessellation
shaders.
This commit is contained in:
Henri Verbeet
2025-05-18 22:36:39 +02:00
parent 2b257caea9
commit 85d2703c03
Notes: Henri Verbeet 2025-06-04 13:13:37 +02:00
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1521
8 changed files with 32 additions and 19 deletions

View File

@@ -131,7 +131,6 @@ static bool check_gl_extensions(struct gl_runner *runner)
"GL_ARB_internalformat_query",
"GL_ARB_sampler_objects",
"GL_ARB_shader_image_load_store",
"GL_ARB_tessellation_shader",
"GL_ARB_texture_storage",
};
@@ -152,6 +151,8 @@ static bool check_gl_extensions(struct gl_runner *runner)
return false;
}
if (check_gl_extension("GL_EXT_depth_bounds_test", count))
runner->caps.shader_caps[SHADER_CAP_DEPTH_BOUNDS] = true;
if (check_gl_extension("GL_ARB_gpu_shader_fp64", count))
runner->caps.shader_caps[SHADER_CAP_FLOAT64] = true;
if (check_gl_extension("GL_ARB_gpu_shader_int64", count))
@@ -159,8 +160,8 @@ static bool check_gl_extensions(struct gl_runner *runner)
if (check_gl_extension("GL_ARB_shader_viewport_layer_array", count) && (runner->language == GLSL
|| check_spirv_extension("SPV_EXT_shader_viewport_index_layer", spirv_count)))
runner->caps.shader_caps[SHADER_CAP_RT_VP_ARRAY_INDEX] = true;
if (check_gl_extension("GL_EXT_depth_bounds_test", count))
runner->caps.shader_caps[SHADER_CAP_DEPTH_BOUNDS] = true;
if (check_gl_extension("GL_ARB_tessellation_shader", count))
runner->caps.shader_caps[SHADER_CAP_TESSELLATION_SHADER] = true;
return true;
}