vkCmdBindIndexBuffer
To bind an index buffer to a command buffer, call:
void vkCmdBindIndexBuffer(
VkCommandBuffer commandBuffer,
VkBuffer buffer,
VkDeviceSize offset,
VkIndexType indexType);
commandBuffer
is the command buffer into which the command is recorded.buffer
is the buffer being bound.offset
is the starting offset in bytes withinbuffer
used in index buffer address calculations.indexType
is 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_KHR
, the
indexTypeUint8
feature must be
enabled
VUID-vkCmdBindIndexBuffer-None-09493
If maintenance6
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
commandBuffer
must be externally synchronized - Host access to the
VkCommandPool
thatcommandBuffer
was allocated from must be externally synchronized ::