vkCmdBindIndexBuffer
To bind an index buffer to a command buffer, call:
void vkCmdBindIndexBuffer(
VkCommandBuffer commandBuffer,
VkBuffer buffer,
VkDeviceSize offset,
VkIndexType indexType);
commandBufferis the command buffer into which the command is recorded.bufferis the buffer being bound.offsetis the starting offset in bytes withinbufferused in index buffer address calculations.indexTypeis a VkIndexType value specifying the size of the indices.
If the maintenance6 feature is enabled,
buffer can be VK_NULL_HANDLE.
If buffer is VK_NULL_HANDLE and the nullDescriptor feature is enabled, every index fetched results in a
value of zero.
Valid Usage
VUID-vkCmdBindIndexBuffer-offset-08782
offset must be less than the size of buffer
VUID-vkCmdBindIndexBuffer-offset-08783
The sum of offset and the base address of the range of
VkDeviceMemory object that is backing buffer, must be a
multiple of the size of the type indicated by indexType
VUID-vkCmdBindIndexBuffer-buffer-08784
buffer must have been created with the
VK_BUFFER_USAGE_INDEX_BUFFER_BIT flag
VUID-vkCmdBindIndexBuffer-buffer-08785
If buffer is non-sparse then it must be bound completely and
contiguously to a single VkDeviceMemory object
VUID-vkCmdBindIndexBuffer-indexType-08786
indexType must not be VK_INDEX_TYPE_NONE_KHR
VUID-vkCmdBindIndexBuffer-indexType-08787
If indexType is VK_INDEX_TYPE_UINT8, the
indexTypeUint8 feature must be
enabled
VUID-vkCmdBindIndexBuffer-None-09493
If the maintenance6 feature is not
enabled,
buffer must not be VK_NULL_HANDLE
VUID-vkCmdBindIndexBuffer-buffer-09494
If buffer is VK_NULL_HANDLE, offset must be zero
Valid Usage (Implicit)
VUID-vkCmdBindIndexBuffer-commandBuffer-parameter
commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBindIndexBuffer-buffer-parameter
If buffer is not VK_NULL_HANDLE, buffer must be a valid VkBuffer handle
VUID-vkCmdBindIndexBuffer-indexType-parameter
indexType must be a valid VkIndexType value
VUID-vkCmdBindIndexBuffer-commandBuffer-recording
commandBuffer must be in the recording state
VUID-vkCmdBindIndexBuffer-commandBuffer-cmdpool
The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBindIndexBuffer-videocoding
This command must only be called outside of a video coding scope
VUID-vkCmdBindIndexBuffer-commonparent
Both of buffer, and commandBuffer that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
Host Synchronization
- Host access to
commandBuffermust be externally synchronized - Host access to the
VkCommandPoolthatcommandBufferwas allocated from must be externally synchronized ::