From d8447fd392892519e2f5653426b93fde75efe62e Mon Sep 17 00:00:00 2001 From: Sagar Ghuge Date: Tue, 25 Nov 2025 21:17:45 -0800 Subject: [PATCH] vulkan/runtime: Account for pipeline libraries stage count Don't excludes stages coming from pipeline libraries. This caused valid group indices referring to library stages to be dropped, leading to mismatched stage_count. Fixes: e05a9b77b6ed ("vulkan/runtime: split rt shaders hashing from compile") Signed-off-by: Sagar Ghuge Reviewed-by: Lionel Landwerlin Part-of: --- src/vulkan/runtime/vk_pipeline.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/vulkan/runtime/vk_pipeline.c b/src/vulkan/runtime/vk_pipeline.c index 6c4e8045c78..4acb912ef52 100644 --- a/src/vulkan/runtime/vk_pipeline.c +++ b/src/vulkan/runtime/vk_pipeline.c @@ -3023,23 +3023,23 @@ vk_get_rt_pipeline_compile_info(struct vk_rt_pipeline_compile_info *info, group->stage_count = 0; switch (group_info->type) { case VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR: - assert(group_info->generalShader < pCreateInfo->stageCount); + assert(group_info->generalShader < info->stage_count); group->stage_indices[group->stage_count++] = group_info->generalShader; break; case VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR: - if (group_info->anyHitShader < pCreateInfo->stageCount) + if (group_info->anyHitShader < info->stage_count) group->stage_indices[group->stage_count++] = group_info->anyHitShader; - if (group_info->closestHitShader < pCreateInfo->stageCount) + if (group_info->closestHitShader < info->stage_count) group->stage_indices[group->stage_count++] = group_info->closestHitShader; break; case VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR: - if (group_info->closestHitShader < pCreateInfo->stageCount) + if (group_info->closestHitShader < info->stage_count) group->stage_indices[group->stage_count++] = group_info->closestHitShader; - if (group_info->anyHitShader < pCreateInfo->stageCount) + if (group_info->anyHitShader < info->stage_count) group->stage_indices[group->stage_count++] = group_info->anyHitShader; - assert(group_info->intersectionShader < pCreateInfo->stageCount); + assert(group_info->intersectionShader < info->stage_count); group->stage_indices[group->stage_count++] = group_info->intersectionShader; break;