From: Bas Nieuwenhuizen Date: Tue, 30 Jul 2019 20:23:02 +0000 (+0200) Subject: radv: Fix descriptor set allocation failure. X-Git-Tag: upstream/19.3.0~3599 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2b53c49d2f7e54c4b3693abb0f13adf27d179ea8;p=platform%2Fupstream%2Fmesa.git radv: Fix descriptor set allocation failure. Set all the handles to VK_NULL_HANDLE: "If the creation of any of those descriptor sets fails, then the implementation must destroy all successfully created descriptor set objects from this command, set all entries of the pDescriptorSets array to VK_NULL_HANDLE and return the error." (Vulkan 1.1.117 Spec, section 13.2) CC: Reviewed-by: Dave Airlie --- diff --git a/src/amd/vulkan/radv_descriptor_set.c b/src/amd/vulkan/radv_descriptor_set.c index 7d3e681..6f999a4 100644 --- a/src/amd/vulkan/radv_descriptor_set.c +++ b/src/amd/vulkan/radv_descriptor_set.c @@ -796,9 +796,13 @@ VkResult radv_AllocateDescriptorSets( pDescriptorSets[i] = radv_descriptor_set_to_handle(set); } - if (result != VK_SUCCESS) + if (result != VK_SUCCESS) { radv_FreeDescriptorSets(_device, pAllocateInfo->descriptorPool, i, pDescriptorSets); + for (i = 0; i < pAllocateInfo->descriptorSetCount; i++) { + pDescriptorSets[i] = VK_NULL_HANDLE; + } + } return result; }