From c6d776f092cd0bd6189796bb61eb6c41824e0ce0 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Wed, 23 Feb 2022 19:49:54 +0100 Subject: [PATCH] radv: remove unnecessary check in FreeCommandBuffers() cmd_buffer->pool should never be NULL. Even if AllocateCommandBuffers() fails, the successfully created cmdbuffers would have it set correctly. From the Vulkan spec: "VUID-vkFreeCommandBuffers-pCommandBuffers-parent Each element of pCommandBuffers that is a valid handle must have been created, allocated, or retrieved from commandPool." Signed-off-by: Samuel Pitoiset Reviewed-by: Bas Nieuwenhuizen Part-of: --- src/amd/vulkan/radv_cmd_buffer.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c index b7f9a00d667..1ba594c9192 100644 --- a/src/amd/vulkan/radv_cmd_buffer.c +++ b/src/amd/vulkan/radv_cmd_buffer.c @@ -4435,16 +4435,17 @@ VKAPI_ATTR void VKAPI_CALL radv_FreeCommandBuffers(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer *pCommandBuffers) { + RADV_FROM_HANDLE(radv_cmd_pool, pool, commandPool); + for (uint32_t i = 0; i < commandBufferCount; i++) { RADV_FROM_HANDLE(radv_cmd_buffer, cmd_buffer, pCommandBuffers[i]); - if (cmd_buffer) { - if (cmd_buffer->pool) { - list_del(&cmd_buffer->pool_link); - list_addtail(&cmd_buffer->pool_link, &cmd_buffer->pool->free_cmd_buffers); - } else - radv_destroy_cmd_buffer(cmd_buffer); - } + if (!cmd_buffer) + continue; + assert(cmd_buffer->pool == pool); + + list_del(&cmd_buffer->pool_link); + list_addtail(&cmd_buffer->pool_link, &pool->free_cmd_buffers); } }