DrawIndex
DrawIndex
Decorating a variable with the DrawIndex built-in will make that
variable contain the integer value corresponding to the zero-based index of
the draw that invoked the current
task, mesh, or
vertex shader invocation.
For indirect drawing commands, DrawIndex begins at zero and
increments by one for each draw executed.
The number of draws is given by the drawCount parameter.
For direct drawing commands,
if vkCmdDrawMultiEXT or vkCmdDrawMultiIndexedEXT is used, this
variable contains the integer value corresponding to the zero-based index of
the draw.
Otherwise
DrawIndex is always zero.
DrawIndex is dynamically uniform.
When task or mesh shaders are used, only the first active stage will have proper access to the variable. The value read by other stages is undefined:.
Valid Usage
VUID-DrawIndex-DrawIndex-04207
The DrawIndex decoration must be used only within the Vertex,
MeshEXT, TaskEXT, MeshNV, or TaskNV Execution Model
VUID-DrawIndex-DrawIndex-04208
The variable decorated with DrawIndex must be declared using the
Input Storage Class
VUID-DrawIndex-DrawIndex-04209
The variable decorated with DrawIndex must be declared as a scalar
32-bit integer value