anv: clear descriptorsets if AllocateDescriptorSets fails
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7285
Cc: mesa-stable
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18719>
(cherry picked from commit 369c12e5be
)
This commit is contained in:

committed by
Dylan Baker

parent
c0c5ced0d5
commit
ed090af4dc
@@ -2893,7 +2893,7 @@
|
||||
"description": "anv: clear descriptorsets if AllocateDescriptorSets fails",
|
||||
"nominated": true,
|
||||
"nomination_type": 0,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": null
|
||||
},
|
||||
|
@@ -1305,9 +1305,20 @@ VkResult anv_AllocateDescriptorSets(
|
||||
pDescriptorSets[i] = anv_descriptor_set_to_handle(set);
|
||||
}
|
||||
|
||||
if (result != VK_SUCCESS)
|
||||
if (result != VK_SUCCESS) {
|
||||
anv_FreeDescriptorSets(_device, pAllocateInfo->descriptorPool,
|
||||
i, pDescriptorSets);
|
||||
/* The Vulkan 1.3.228 spec, section 14.2.3. Allocation of Descriptor Sets:
|
||||
*
|
||||
* "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."
|
||||
*/
|
||||
for (i = 0; i < pAllocateInfo->descriptorSetCount; i++)
|
||||
pDescriptorSets[i] = VK_NULL_HANDLE;
|
||||
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
Reference in New Issue
Block a user