From 6d53fcd54e9332fe0062c3b204684964eb5a89e8 Mon Sep 17 00:00:00 2001 From: Lionel Landwerlin Date: Fri, 19 Jan 2024 11:25:21 +0200 Subject: [PATCH] anv: track imported ray tracing pipeline groups MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Lionel Landwerlin Reviewed-by: José Roberto de Souza Part-of: --- src/intel/vulkan/anv_pipeline.c | 7 +++++-- src/intel/vulkan/anv_private.h | 3 +++ 2 files changed, 8 insertions(+), 2 deletions(-) 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;