From c5d91ab254e59bedfc0faf71cfc46531d9be4ea8 Mon Sep 17 00:00:00 2001 From: Konstantin Seurer Date: Sat, 26 Nov 2022 16:09:49 +0100 Subject: [PATCH] radv/rt: Check space before emitting descriptors Found by inspection. cc: mesa-stable Part-of: --- src/amd/vulkan/radv_cmd_buffer.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c index 66b1226d879..fab68c9d352 100644 --- a/src/amd/vulkan/radv_cmd_buffer.c +++ b/src/amd/vulkan/radv_cmd_buffer.c @@ -9568,6 +9568,8 @@ radv_trace_rays(struct radv_cmd_buffer *cmd_buffer, const VkTraceRaysIndirectCom } else info.va = launch_size_va; + ASSERTED unsigned cdw_max = radeon_check_space(cmd_buffer->device->ws, cmd_buffer->cs, 11); + struct radv_userdata_info *desc_loc = radv_lookup_user_sgpr(&pipeline->base, MESA_SHADER_COMPUTE, AC_UD_CS_SBT_DESCRIPTORS); if (desc_loc->sgpr_idx != -1) { @@ -9590,6 +9592,8 @@ radv_trace_rays(struct radv_cmd_buffer *cmd_buffer, const VkTraceRaysIndirectCom pipeline->base.scratch_bytes_per_wave / cs_info->wave_size); } + assert(cmd_buffer->cs->cdw <= cdw_max); + radv_dispatch(cmd_buffer, &info, pipeline, VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR); }