Class VkCmdProcessCommandsInfoNVX

  • All Implemented Interfaces:
    java.lang.AutoCloseable, NativeResource, Pointer

    public class VkCmdProcessCommandsInfoNVX
    extends Struct
    implements NativeResource
    Structure specifying parameters for the generation of commands.
    Valid Usage
    • The provided objectTable must include all objects referenced by the generation process.
    • indirectCommandsTokenCount must match the indirectCommandsLayout’s tokenCount.
    • The tokenType member of each entry in the pIndirectCommandsTokens array must match the values used at creation time of indirectCommandsLayout
    • If targetCommandBuffer is provided, it must have reserved command space.
    • If targetCommandBuffer is provided, the objectTable must match the reservation’s objectTable and must have had all referenced objects registered at reservation time.
    • If targetCommandBuffer is provided, the indirectCommandsLayout must match the reservation’s indirectCommandsLayout.
    • If targetCommandBuffer is provided, the maxSequencesCount must not exceed the reservation’s maxSequencesCount.
    • If sequencesCountBuffer is used, its usage flag must have BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set.
    • If sequencesCountBuffer is used, sequencesCountOffset must be aligned to VkDeviceGeneratedCommandsLimitsNVX::minSequenceCountBufferOffsetAlignment.
    • If sequencesIndexBuffer is used, its usage flag must have BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set.
    • If sequencesIndexBuffer is used, sequencesIndexOffset must be aligned to VkDeviceGeneratedCommandsLimitsNVX::minSequenceIndexBufferOffsetAlignment.
    Valid Usage (Implicit)
    • sType must be STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX
    • pNext must be NULL
    • objectTable must be a valid VkObjectTableNVX handle
    • indirectCommandsLayout must be a valid VkIndirectCommandsLayoutNVX handle
    • pIndirectCommandsTokens must be a valid pointer to an array of indirectCommandsTokenCount valid VkIndirectCommandsTokenNVX structures
    • If targetCommandBuffer is not NULL, targetCommandBuffer must be a valid VkCommandBuffer handle
    • If sequencesCountBuffer is not NULL_HANDLE, sequencesCountBuffer must be a valid VkBuffer handle
    • If sequencesIndexBuffer is not NULL_HANDLE, sequencesIndexBuffer must be a valid VkBuffer handle
    • indirectCommandsTokenCount must be greater than 0
    • Each of indirectCommandsLayout, objectTable, sequencesCountBuffer, sequencesIndexBuffer, and targetCommandBuffer that are valid handles must have been created, allocated, or retrieved from the same VkDevice
    Host Synchronization
    • Host access to objectTable must be externally synchronized
    • Host access to targetCommandBuffer must be externally synchronized
    See Also

    VkIndirectCommandsTokenNVX, CmdProcessCommandsNVX

    Member documentation

    • sType – the type of this structure.
    • pNextNULL or a pointer to an extension-specific structure.
    • objectTable – the VkObjectTableNVX to be used for the generation process. Only registered objects at the time CmdReserveSpaceForCommandsNVX is called, will be taken into account for the reservation.
    • indirectCommandsLayout – the VkIndirectCommandsLayoutNVX that provides the command sequence to generate.
    • indirectCommandsTokenCount – defines the number of input tokens used.
    • pIndirectCommandsTokens – provides an array of VkIndirectCommandsTokenNVX that reference the input data for each token command.
    • maxSequencesCount – the maximum number of sequences for which command buffer space will be reserved. If sequencesCountBuffer is NULL_HANDLE, this is also the actual number of sequences generated.
    • targetCommandBuffercan be the secondary VkCommandBuffer in which the commands should be recorded. If targetCommandBuffer is NULL an implicit reservation as well as execution takes place on the processing VkCommandBuffer.
    • sequencesCountBuffercan be VkBuffer from which the actual amount of sequences is sourced from as ftext:uint32_t value.
    • sequencesCountOffset – the byte offset into sequencesCountBuffer where the count value is stored.
    • sequencesIndexBuffermust be set if indirectCommandsLayout’s INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX is set and provides the used sequence indices as ftext:uint32_t array. Otherwise it must be NULL_HANDLE.
    • sequencesIndexOffset – the byte offset into sequencesIndexBuffer where the index values start.

    Layout

    
     struct VkCmdProcessCommandsInfoNVX {
         VkStructureType sType;
         void const * pNext;
         VkObjectTableNVX objectTable;
         VkIndirectCommandsLayoutNVX indirectCommandsLayout;
         uint32_t indirectCommandsTokenCount;
         VkIndirectCommandsTokenNVX const * pIndirectCommandsTokens;
         uint32_t maxSequencesCount;
         VkCommandBuffer targetCommandBuffer;
         VkBuffer sequencesCountBuffer;
         VkDeviceSize sequencesCountOffset;
         VkBuffer sequencesIndexBuffer;
         VkDeviceSize sequencesIndexOffset;
     }