radv/sqtt: Handle ray tracing pipelines with no traversal shader

Fixes: 0f87d40 ("radv/rt: Skip compiling a traversal shader")
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27383>
This commit is contained in:
Konstantin Seurer
2024-01-31 10:31:30 +01:00
parent 0aa9afa8e1
commit bb14ee53a5

View File

@@ -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);