## C Specification

To free command buffers, call:

void vkFreeCommandBuffers(
VkDevice                                    device,
VkCommandPool                               commandPool,
uint32_t                                    commandBufferCount,
const VkCommandBuffer*                      pCommandBuffers);

## Parameters

• device is the logical device that owns the command pool.

• commandPool is the command pool from which the command buffers were allocated.

• commandBufferCount is the length of the pCommandBuffers array.

• pCommandBuffers is an array of handles of command buffers to free.

## Description

Any primary command buffer that is in the recording or executable state and has any element of pCommandBuffers recorded into it, becomes invalid.

Valid Usage
• All elements of pCommandBuffers must not be in the pending state

• pCommandBuffers must be a valid pointer to an array of commandBufferCount VkCommandBuffer handles, each element of which must either be a valid handle or NULL

Valid Usage (Implicit)
• device must be a valid VkDevice handle

• commandPool must be a valid VkCommandPool handle

• commandBufferCount must be greater than 0

• commandPool must have been created, allocated, or retrieved from device

• Each element of pCommandBuffers that is a valid handle must have been created, allocated, or retrieved from commandPool

Host Synchronization
• Host access to commandPool must be externally synchronized

• Host access to each member of pCommandBuffers must be externally synchronized

## Document Notes

For more information, see the Vulkan Specification at URL

This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.