vkAllocateCommandBuffers
To allocate command buffers, call:
VkResult vkAllocateCommandBuffers(
VkDevice device,
const VkCommandBufferAllocateInfo* pAllocateInfo,
VkCommandBuffer* pCommandBuffers);
deviceis the logical device that owns the command pool.pAllocateInfois a pointer to a VkCommandBufferAllocateInfo structure describing parameters of the allocation.pCommandBuffersis a pointer to an array of VkCommandBuffer handles in which the resulting command buffer objects are returned. The array must be at least the length specified by thecommandBufferCountmember ofpAllocateInfo. Each allocated command buffer begins in the initial state.
vkAllocateCommandBuffers can be used to allocate multiple command
buffers.
If the allocation of any of those command buffers fails, the implementation
must free all successfully allocated command buffer objects from this
command, set all entries of the pCommandBuffers array to NULL and
return the error.
Filling pCommandBuffers with NULL values on failure is an exception
to the default error behavior that output parameters will have undefined:
contents.
When command buffers are first allocated, they are in the initial state.
Valid Usage (Implicit)
VUID-vkAllocateCommandBuffers-device-parameter
device must be a valid VkDevice handle
VUID-vkAllocateCommandBuffers-pAllocateInfo-parameter
pAllocateInfo must be a valid pointer to a valid VkCommandBufferAllocateInfo structure
VUID-vkAllocateCommandBuffers-pCommandBuffers-parameter
pCommandBuffers must be a valid pointer to an array of pAllocateInfo→commandBufferCount VkCommandBuffer handles
VUID-vkAllocateCommandBuffers-pAllocateInfo::commandBufferCount-arraylength
pAllocateInfo→commandBufferCount must be greater than 0
Host Synchronization
- Host access to
pAllocateInfo→commandPoolmust be externally synchronized ::