VkIndirectCommandsLayoutTokenEXT
The VkIndirectCommandsLayoutTokenEXT structure specifies details to
the function arguments that need to be known at layout creation time:
typedef struct VkIndirectCommandsLayoutTokenEXT {
VkStructureType sType;
const void* pNext;
VkIndirectCommandsTokenTypeEXT type;
VkIndirectCommandsTokenDataEXT data;
uint32_t offset;
} VkIndirectCommandsLayoutTokenEXT;
sTypeis a VkStructureType value identifying this structure.pNextisNULLor a pointer to a structure extending this structure.typespecifies the VkIndirectCommandsTokenTypeEXT fordata.dataspecifies a VkIndirectCommandsTokenDataEXT containing token-specific details for command execution. It is ignored iftypedoes not match any member of the VkIndirectCommandsTokenDataEXT union.offsetis the relative byte offset for the token within one sequence of the indirect buffer. The data stored at that offset is the command data for the token, e.g.VkDispatchIndirectCommand.
Valid Usage
VUID-VkIndirectCommandsLayoutTokenEXT-offset-11124
offset must be less than or equal to
VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT::maxIndirectCommandsTokenOffset
VUID-VkIndirectCommandsLayoutTokenEXT-offset-11125
offset must be aligned to 4
VUID-VkIndirectCommandsLayoutTokenEXT-meshShader-11126
If meshShader or taskShader are not enabled, type must not be
VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_EXT
VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT,
VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXT or
VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT
VUID-VkIndirectCommandsLayoutTokenEXT-rayTracingMaintenance1-11128
If the rayTracingMaintenance1
feature is not enabled, type must not be
VK_INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT
VUID-VkIndirectCommandsLayoutTokenEXT-deviceGeneratedCommandsMultiDrawIndirectCount-11129
If [VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT::deviceGeneratedCommandsMultiDrawIndirectCount](xref::limits-deviceGeneratedCommandsMultiDrawIndirectCount)
is not supported, type must not be
VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_COUNT_EXT or
VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_COUNT_EXT
VUID-VkIndirectCommandsLayoutTokenEXT-deviceGeneratedCommandsMultiDrawIndirectCount-11130
If [VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT::deviceGeneratedCommandsMultiDrawIndirectCount](xref::limits-deviceGeneratedCommandsMultiDrawIndirectCount)
is not supported, type must not be
VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT
VUID-VkIndirectCommandsLayoutTokenEXT-deviceGeneratedCommandsMultiDrawIndirectCount-11131
If [VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT::deviceGeneratedCommandsMultiDrawIndirectCount](xref::limits-deviceGeneratedCommandsMultiDrawIndirectCount)
is not supported, type must not be
VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT
Valid Usage (Implicit)
VUID-VkIndirectCommandsLayoutTokenEXT-sType-sType
sType must be VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT
VUID-VkIndirectCommandsLayoutTokenEXT-type-parameter
type must be a valid VkIndirectCommandsTokenTypeEXT value
VUID-VkIndirectCommandsLayoutTokenEXT-pPushConstant-parameter
If type is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT,VK_INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT, the pPushConstant member of data must be a valid pointer to a valid VkIndirectCommandsPushConstantTokenEXT structure
VUID-VkIndirectCommandsLayoutTokenEXT-pVertexBuffer-parameter
If type is VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT, the pVertexBuffer member of data must be a valid pointer to a valid VkIndirectCommandsVertexBufferTokenEXT structure
VUID-VkIndirectCommandsLayoutTokenEXT-pIndexBuffer-parameter
If type is VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT, the pIndexBuffer member of data must be a valid pointer to a valid VkIndirectCommandsIndexBufferTokenEXT structure
VUID-VkIndirectCommandsLayoutTokenEXT-pExecutionSet-parameter
If type is VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT, the pExecutionSet member of data must be a valid pointer to a valid VkIndirectCommandsExecutionSetTokenEXT structure