VkIndirectCommandsLayoutTokenEXT(3)

Name

VkIndirectCommandsLayoutTokenEXT - Struct specifying the details of an indirect command layout token

C Specification

The VkIndirectCommandsLayoutTokenEXT structure specifies details to the function arguments that need to be known at layout creation time:

// Provided by VK_EXT_device_generated_commands
typedef struct VkIndirectCommandsLayoutTokenEXT {
    VkStructureType                   sType;
    const void*                       pNext;
    VkIndirectCommandsTokenTypeEXT    type;
    VkIndirectCommandsTokenDataEXT    data;
    uint32_t                          offset;
} VkIndirectCommandsLayoutTokenEXT;

Members

  • sType is a VkStructureType value identifying this structure.

  • pNext is NULL or a pointer to a structure extending this structure.

  • type specifies the VkIndirectCommandsTokenTypeEXT for data.

  • data specifies a VkIndirectCommandsTokenDataEXT containing token-specific details for command execution. It is ignored if type does not match any member of the VkIndirectCommandsTokenDataEXT union.

  • offset is 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.

Description

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 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 is not supported, type must not be VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT

  • VUID-VkIndirectCommandsLayoutTokenEXT-deviceGeneratedCommandsMultiDrawIndirectCount-11131
    If VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT::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 or 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

Document Notes

For more information, see the Vulkan Specification.

This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.