Drawing commands (commands with Draw
in the name) provoke work in a
graphics pipeline.
Drawing commands are recorded into a command buffer and when executed by a
queue, will produce work which executes according to the currently bound
graphics pipeline.
A graphics pipeline must be bound to a command buffer before any drawing
commands are recorded in that command buffer.
Each draw is made up of zero or more vertices and zero or more instances,
which are processed by the device and result in the assembly of primitives.
Primitives are assembled according to the pInputAssemblyState
member
of the VkGraphicsPipelineCreateInfo
structure, which is of type
VkPipelineInputAssemblyStateCreateInfo
:
typedef struct VkPipelineInputAssemblyStateCreateInfo { VkStructureType sType; const void* pNext; VkPipelineInputAssemblyStateCreateFlags flags; VkPrimitiveTopology topology; VkBool32 primitiveRestartEnable; } VkPipelineInputAssemblyStateCreateInfo;
sType
is the type of this structure.
pNext
is NULL
or a pointer to an extension-specific structure.
flags
is reserved for future use.
topology
is a VkPrimitiveTopology
defining the primitive
topology, as described below.
primitiveRestartEnable
controls whether a special vertex index
value is treated as restarting the assembly of primitives.
This enable only applies to indexed draws (vkCmdDrawIndexed
and
vkCmdDrawIndexedIndirect
), and the special index value is either
0xFFFFFFFF when the indexType
parameter of
vkCmdBindIndexBuffer
is equal to VK_INDEX_TYPE_UINT32
, or
0xFFFF when indexType
is equal to VK_INDEX_TYPE_UINT16
.
Primitive restart is not allowed for “list” topologies.
Restarting the assembly of primitives discards the most recent index values
if those elements formed an incomplete primitive, and restarts the primitive
assembly using the subsequent indices, but only assembling the immediately
following element through the end of the originally specified elements.
The primitive restart index value comparison is performed before adding the
vertexOffset
value to the index value.