tests/shader-runner: Make geometry shaders optional.

This allows the Vulkan runner to execute in environments which do
not support geometry shaders, most notably MoltenVK. In particular,
that enables SM<4 shaders to run in such environments
This commit is contained in:
Giovanni Mascellani
2024-10-14 21:48:41 +02:00
committed by Henri Verbeet
parent 7f834f57e5
commit bc351f4b70
Notes: Henri Verbeet 2024-10-15 17:05:20 +02:00
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1182
7 changed files with 33 additions and 13 deletions

View File

@@ -1571,12 +1571,16 @@ static bool init_vulkan_runner(struct vulkan_shader_runner *runner)
features.x = VK_TRUE
ENABLE_FEATURE(fragmentStoresAndAtomics);
/* For SV_PrimitiveID/SpvBuiltInPrimitiveId in fragment shaders. */
ENABLE_FEATURE(geometryShader);
ENABLE_FEATURE(shaderClipDistance);
ENABLE_FEATURE(shaderImageGatherExtended);
ENABLE_FEATURE(shaderStorageImageWriteWithoutFormat);
if (ret_features->geometryShader)
{
features.geometryShader = VK_TRUE;
runner->caps.geometry_shader = true;
}
if (ret_features->shaderFloat64)
{
features.shaderFloat64 = VK_TRUE;