diff --git a/src/intel/vulkan/anv_pipeline.c b/src/intel/vulkan/anv_pipeline.c index 892089cc52a..094ea3717ad 100644 --- a/src/intel/vulkan/anv_pipeline.c +++ b/src/intel/vulkan/anv_pipeline.c @@ -4116,8 +4116,11 @@ anv_ray_tracing_pipeline_create( pCreateInfo->pLibraryInfo->pLibraries[l]); struct anv_ray_tracing_pipeline *rt_library = anv_pipeline_to_ray_tracing(library); - for (uint32_t lg = 0; lg < rt_library->group_count; lg++) - pipeline->groups[g++] = rt_library->groups[lg]; + for (uint32_t lg = 0; lg < rt_library->group_count; lg++) { + pipeline->groups[g] = rt_library->groups[lg]; + pipeline->groups[g].imported = true; + g++; + } /* Account for shaders in the library. */ util_dynarray_foreach(&rt_library->shaders, diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h index 2fa97d23528..a779761f86a 100644 --- a/src/intel/vulkan/anv_private.h +++ b/src/intel/vulkan/anv_private.h @@ -4320,6 +4320,9 @@ struct anv_compute_pipeline { struct anv_rt_shader_group { VkRayTracingShaderGroupTypeKHR type; + /* Whether this group was imported from another pipeline */ + bool imported; + struct anv_shader_bin *general; struct anv_shader_bin *closest_hit; struct anv_shader_bin *any_hit;