From: Bas Nieuwenhuizen Date: Sat, 29 Jun 2019 01:07:03 +0000 (+0200) Subject: radv: Only allocate supplied number of descriptors when variable. X-Git-Tag: android-x86-9.0-r1~5002 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=d7e6541cc72;p=android-x86%2Fexternal-mesa.git radv: Only allocate supplied number of descriptors when variable. Fixes: b5e04e9217b "radv: Support allocating variable size descriptor sets." Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111019 Reviewed-by: Samuel Pitoiset --- diff --git a/src/amd/vulkan/radv_descriptor_set.c b/src/amd/vulkan/radv_descriptor_set.c index bd00f68a3cb..2891808e418 100644 --- a/src/amd/vulkan/radv_descriptor_set.c +++ b/src/amd/vulkan/radv_descriptor_set.c @@ -503,7 +503,13 @@ radv_descriptor_set_create(struct radv_device *device, } set->layout = layout; - uint32_t layout_size = align_u32(layout->size, 32); + uint32_t layout_size = layout->size; + if (variable_count) { + assert(layout->has_variable_descriptors); + layout_size = layout->binding[layout->binding_count - 1].offset + + *variable_count * layout->binding[layout->binding_count - 1].size; + } + layout_size = align_u32(layout_size, 32); if (layout_size) { set->size = layout_size;