From 104510aeb6f61ecf5cb8545dc48173df9a8c14e7 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Fri, 15 Aug 2025 12:49:04 +0200 Subject: [PATCH] radv: slightly optimize indirect descriptor sets upload size Signed-off-by: Samuel Pitoiset Part-of: --- src/amd/vulkan/radv_cmd_buffer.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c index 44913c64b72..9d919679926 100644 --- a/src/amd/vulkan/radv_cmd_buffer.c +++ b/src/amd/vulkan/radv_cmd_buffer.c @@ -5468,7 +5468,8 @@ void radv_upload_indirect_descriptor_sets(struct radv_cmd_buffer *cmd_buffer, struct radv_descriptor_state *descriptors_state) { - uint32_t size = MAX_SETS * 4; + const uint32_t last_valid_desc = util_last_bit(descriptors_state->valid); + const uint32_t size = last_valid_desc * 4; uint32_t offset; void *ptr; @@ -5477,7 +5478,7 @@ radv_upload_indirect_descriptor_sets(struct radv_cmd_buffer *cmd_buffer, descriptors_state->indirect_descriptor_sets_va = radv_buffer_get_va(cmd_buffer->upload.upload_bo) + offset; - for (unsigned i = 0; i < MAX_SETS; i++) { + for (unsigned i = 0; i < last_valid_desc; i++) { uint32_t *uptr = ((uint32_t *)ptr) + i; uint64_t set_va = 0; if (descriptors_state->valid & (1u << i))