From ce9e2dbc62236ac54632e5db5a2af1a43c863435 Mon Sep 17 00:00:00 2001 From: Caio Oliveira Date: Wed, 4 Sep 2024 08:48:58 -0700 Subject: [PATCH] vk/runtime: Allow "require full subgroups" for Mesh/Task Per description of VkPipelineShaderStageCreateFlags ``` VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT specifies that the subgroup sizes must be launched with all invocations active in the task, mesh, or compute stage. ``` Future CTS tests will use that. Reviewed-by: Faith Ekstrand Part-of: --- src/vulkan/runtime/vk_pipeline.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/vulkan/runtime/vk_pipeline.c b/src/vulkan/runtime/vk_pipeline.c index acc344af330..7b789ee326e 100644 --- a/src/vulkan/runtime/vk_pipeline.c +++ b/src/vulkan/runtime/vk_pipeline.c @@ -116,7 +116,9 @@ vk_get_subgroup_size(uint32_t spirv_version, /* Starting with SPIR-V 1.6, varying subgroup size the default */ return SUBGROUP_SIZE_VARYING; } else if (require_full) { - assert(stage == MESA_SHADER_COMPUTE); + assert(stage == MESA_SHADER_COMPUTE || + stage == MESA_SHADER_MESH || + stage == MESA_SHADER_TASK); return SUBGROUP_SIZE_FULL_SUBGROUPS; } else { return SUBGROUP_SIZE_API_CONSTANT;