summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>2019-07-30 22:23:02 +0200
committerJuan A. Suarez Romero <jasuarez@igalia.com>2019-07-31 08:00:27 +0000
commitb1d66aa9ee44ccdd1ca4a4bd6f5e3be3bd9743b3 (patch)
treeb5c97811527c618568afdca28569a2f23bcb92c5
parentd06ccdf9ddffab2006fcef619db1940593d9d6f6 (diff)
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: <mesa-stable@lists.freedesktop.org> Reviewed-by: Dave Airlie <airlied@redhat.com> (cherry picked from commit 2b53c49d2f7e54c4b3693abb0f13adf27d179ea8)
-rw-r--r--src/amd/vulkan/radv_descriptor_set.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/amd/vulkan/radv_descriptor_set.c b/src/amd/vulkan/radv_descriptor_set.c
index 89d451cd728..33615af9784 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;
}