From b49afd6ce24b9f3403993bbc096d72c6a28a854f Mon Sep 17 00:00:00 2001 From: Friedrich Vock Date: Thu, 15 Jun 2023 18:48:18 +0200 Subject: [PATCH] radv: Add the BOs of all shaders in a RT pipeline Part-of: --- src/amd/vulkan/radv_cmd_buffer.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c index 4ea665f..5be68af 100644 --- a/src/amd/vulkan/radv_cmd_buffer.c +++ b/src/amd/vulkan/radv_cmd_buffer.c @@ -6472,6 +6472,15 @@ radv_emit_compute_pipeline(struct radv_cmd_buffer *cmd_buffer, radv_cs_add_buffer(cmd_buffer->device->ws, cmd_buffer->cs, cmd_buffer->state.rt_prolog->bo); radv_cs_add_buffer(cmd_buffer->device->ws, cmd_buffer->cs, cmd_buffer->state.shaders[MESA_SHADER_INTERSECTION]->bo); + struct radv_ray_tracing_pipeline *rt_pipeline = radv_pipeline_to_ray_tracing(&pipeline->base); + for (unsigned i = 0; i < rt_pipeline->stage_count; ++i) { + if (!radv_ray_tracing_stage_is_compiled(&rt_pipeline->stages[i])) + continue; + + struct radv_shader *shader = container_of(rt_pipeline->stages[i].shader, + struct radv_shader, base); + radv_cs_add_buffer(cmd_buffer->device->ws, cmd_buffer->cs, shader->bo); + } } if (unlikely(cmd_buffer->device->trace_bo)) -- 2.7.4