VkDrawIndexedIndirectCommand
The VkDrawIndexedIndirectCommand structure is defined as:
typedef struct VkDrawIndexedIndirectCommand {
uint32_t indexCount;
uint32_t instanceCount;
uint32_t firstIndex;
int32_t vertexOffset;
uint32_t firstInstance;
} VkDrawIndexedIndirectCommand;
pub struct DrawIndexedIndirectCommand {
index_count: u32,
instance_count: u32,
first_index: u32,
vertex_offset: i32,
first_instance: u32,
}
indexCountis the number of vertices to draw.instanceCountis the number of instances to draw.firstIndexis the base index within the index buffer.vertexOffsetis the value added to the vertex index before indexing into the vertex buffer.firstInstanceis the instance ID of the first instance to draw.
The members of VkDrawIndexedIndirectCommand have the same meaning as
the similarly named parameters of vkCmdDrawIndexed.
Valid Usage
VUID-VkDrawIndexedIndirectCommand-pNext-09461
If the bound graphics pipeline state was created with
VkPipelineVertexInputDivisorStateCreateInfo in the pNext
chain of VkGraphicsPipelineCreateInfo::pVertexInputState,
any member of
VkPipelineVertexInputDivisorStateCreateInfo::pVertexBindingDivisors
has a value other than 1 in divisor, and
VkPhysicalDeviceVertexAttributeDivisorProperties::supportsNonZeroFirstInstance
is VK_FALSE, then firstInstance must be 0
VUID-VkDrawIndexedIndirectCommand-None-09462
If
shader objects are used for drawing or
the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, any
member of the pVertexBindingDescriptions parameter to the
vkCmdSetVertexInputEXT call that sets this dynamic state has a
value other than 1 in divisor, and
VkPhysicalDeviceVertexAttributeDivisorProperties::supportsNonZeroFirstInstance
is VK_FALSE, then firstInstance must be 0
VUID-VkDrawIndexedIndirectCommand-robustBufferAccess2-08798
If the robustBufferAccess2
feature is not enabled, (indexSize × (firstIndex
+ indexCount)) must be less than or equal to the size of
the bound index buffer range, with indexSize
being based on the type specified by indexType, and the other
parameters sourced from this command
VUID-VkDrawIndexedIndirectCommand-firstInstance-00554
If the drawIndirectFirstInstance feature is not enabled,
firstInstance must be 0