From bb14ee53a5fbeecb968fdac8fa32b51b6c27dc56 Mon Sep 17 00:00:00 2001 From: Konstantin Seurer Date: Wed, 31 Jan 2024 10:31:30 +0100 Subject: [PATCH] radv/sqtt: Handle ray tracing pipelines with no traversal shader Fixes: 0f87d40 ("radv/rt: Skip compiling a traversal shader") Reviewed-by: Samuel Pitoiset Part-of: --- src/amd/vulkan/layers/radv_sqtt_layer.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/amd/vulkan/layers/radv_sqtt_layer.c b/src/amd/vulkan/layers/radv_sqtt_layer.c index 72f5ba37931..d7f26633f09 100644 --- a/src/amd/vulkan/layers/radv_sqtt_layer.c +++ b/src/amd/vulkan/layers/radv_sqtt_layer.c @@ -1575,10 +1575,12 @@ radv_register_rt_pipeline(struct radv_device *device, struct radv_ray_tracing_pi uint32_t idx = pipeline->stage_count; /* Combined traversal shader */ - result = radv_register_rt_stage(device, pipeline, idx++, max_any_hit_stack_size + max_intersection_stack_size, - pipeline->base.base.shaders[MESA_SHADER_INTERSECTION]); - if (result != VK_SUCCESS) - return result; + if (pipeline->base.base.shaders[MESA_SHADER_INTERSECTION]) { + result = radv_register_rt_stage(device, pipeline, idx++, max_any_hit_stack_size + max_intersection_stack_size, + pipeline->base.base.shaders[MESA_SHADER_INTERSECTION]); + if (result != VK_SUCCESS) + return result; + } /* Prolog */ result = radv_register_rt_stage(device, pipeline, idx++, 0, pipeline->prolog);