VkIndirectCommandsLayoutCreateInfoEXT(3)

Name

VkIndirectCommandsLayoutCreateInfoEXT - Structure specifying the parameters of a newly created indirect commands layout object

C Specification

The VkIndirectCommandsLayoutCreateInfoEXT structure is defined as:

// Provided by VK_EXT_device_generated_commands
typedef struct VkIndirectCommandsLayoutCreateInfoEXT {
    VkStructureType                            sType;
    const void*                                pNext;
    VkIndirectCommandsLayoutUsageFlagsEXT      flags;
    VkShaderStageFlags                         shaderStages;
    uint32_t                                   indirectStride;
    VkPipelineLayout                           pipelineLayout;
    uint32_t                                   tokenCount;
    const VkIndirectCommandsLayoutTokenEXT*    pTokens;
} VkIndirectCommandsLayoutCreateInfoEXT;

Members

Description

The following code illustrates some of the flags:

void cmdProcessAllSequences(cmd, indirectExecutionSet, indirectCommandsLayout, indirectAddress, sequencesCount)
{
  for (s = 0; s < sequencesCount; s++)
  {
    sUsed = s;

    if (indirectCommandsLayout.flags & VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_EXT) {
      sUsed = incoherent_implementation_dependent_permutation[ sUsed ];
    }

    cmdProcessSequence( cmd, indirectExecutionSet, indirectCommandsLayout, indirectAddress, sUsed );
  }
}

When tokens are consumed, an offset is computed based on token offset and stream stride. The resulting offset is required to be aligned. The alignment for a specific token is equal to the scalar alignment of the data type as defined in Alignment Requirements, or 4, whichever is lower.

Valid Usage
Valid Usage (Implicit)
  • VUID-VkIndirectCommandsLayoutCreateInfoEXT-sType-sType
    sType must be VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT

  • VUID-VkIndirectCommandsLayoutCreateInfoEXT-pNext-pNext
    pNext must be NULL or a pointer to a valid instance of VkPipelineLayoutCreateInfo

  • VUID-VkIndirectCommandsLayoutCreateInfoEXT-sType-unique
    The sType value of each structure in the pNext chain must be unique

  • VUID-VkIndirectCommandsLayoutCreateInfoEXT-flags-parameter
    flags must be a valid combination of VkIndirectCommandsLayoutUsageFlagBitsEXT values

  • VUID-VkIndirectCommandsLayoutCreateInfoEXT-shaderStages-parameter
    shaderStages must be a valid combination of VkShaderStageFlagBits values

  • VUID-VkIndirectCommandsLayoutCreateInfoEXT-shaderStages-requiredbitmask
    shaderStages must not be 0

  • VUID-VkIndirectCommandsLayoutCreateInfoEXT-pipelineLayout-parameter
    If pipelineLayout is not VK_NULL_HANDLE, pipelineLayout must be a valid VkPipelineLayout handle

  • VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-parameter
    pTokens must be a valid pointer to an array of tokenCount valid VkIndirectCommandsLayoutTokenEXT structures

  • VUID-VkIndirectCommandsLayoutCreateInfoEXT-tokenCount-arraylength
    tokenCount must be greater than 0

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.