Module: Mesa Branch: main Commit: c6d776f092cd0bd6189796bb61eb6c41824e0ce0 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c6d776f092cd0bd6189796bb61eb6c41824e0ce0
Author: Samuel Pitoiset <[email protected]> Date: Wed Feb 23 19:49:54 2022 +0100 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 <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15164> --- 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); } }
