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 the 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 the 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 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 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;
     }
    • Field Detail

      • SIZEOF

        The struct size in bytes.
      • ALIGNOF

        The struct alignment in bytes.
      • STYPE, PNEXT, OBJECTTABLE, INDIRECTCOMMANDSLAYOUT, INDIRECTCOMMANDSTOKENCOUNT, PINDIRECTCOMMANDSTOKENS, MAXSEQUENCESCOUNT, TARGETCOMMANDBUFFER, SEQUENCESCOUNTBUFFER, SEQUENCESCOUNTOFFSET, SEQUENCESINDEXBUFFER, SEQUENCESINDEXOFFSET

        The struct member offsets.
    • Constructor Detail

      • VkCmdProcessCommandsInfoNVX

        public VkCmdProcessCommandsInfoNVX​(java.nio.ByteBuffer container)
        Creates a VkCmdProcessCommandsInfoNVX instance at the current position of the specified ByteBuffer container. Changes to the buffer's content will be visible to the struct instance and vice versa.

        The created instance holds a strong reference to the container object.

    • Method Detail

      • sizeof

        public int sizeof()
        Description copied from class: Struct
        Returns sizeof(struct).
        Specified by:
        sizeof in class Struct
      • sType

        public int sType()
        Returns the value of the sType field.
      • pNext

        public long pNext()
        Returns the value of the pNext field.
      • objectTable

        public long objectTable()
        Returns the value of the objectTable field.
      • indirectCommandsLayout

        public long indirectCommandsLayout()
        Returns the value of the indirectCommandsLayout field.
      • indirectCommandsTokenCount

        public int indirectCommandsTokenCount()
        Returns the value of the indirectCommandsTokenCount field.
      • maxSequencesCount

        public int maxSequencesCount()
        Returns the value of the maxSequencesCount field.
      • targetCommandBuffer

        @Nullable
        public long targetCommandBuffer()
        Returns the value of the targetCommandBuffer field.
      • sequencesCountBuffer

        public long sequencesCountBuffer()
        Returns the value of the sequencesCountBuffer field.
      • sequencesCountOffset

        public long sequencesCountOffset()
        Returns the value of the sequencesCountOffset field.
      • sequencesIndexBuffer

        public long sequencesIndexBuffer()
        Returns the value of the sequencesIndexBuffer field.
      • sequencesIndexOffset

        public long sequencesIndexOffset()
        Returns the value of the sequencesIndexOffset field.
      • indirectCommandsLayout

        public VkCmdProcessCommandsInfoNVX indirectCommandsLayout​(long value)
        Sets the specified value to the indirectCommandsLayout field.
      • maxSequencesCount

        public VkCmdProcessCommandsInfoNVX maxSequencesCount​(int value)
        Sets the specified value to the maxSequencesCount field.
      • sequencesCountBuffer

        public VkCmdProcessCommandsInfoNVX sequencesCountBuffer​(long value)
        Sets the specified value to the sequencesCountBuffer field.
      • sequencesCountOffset

        public VkCmdProcessCommandsInfoNVX sequencesCountOffset​(long value)
        Sets the specified value to the sequencesCountOffset field.
      • sequencesIndexBuffer

        public VkCmdProcessCommandsInfoNVX sequencesIndexBuffer​(long value)
        Sets the specified value to the sequencesIndexBuffer field.
      • sequencesIndexOffset

        public VkCmdProcessCommandsInfoNVX sequencesIndexOffset​(long value)
        Sets the specified value to the sequencesIndexOffset field.
      • set

        public VkCmdProcessCommandsInfoNVX set​(int sType,
                                               long pNext,
                                               long objectTable,
                                               long indirectCommandsLayout,
                                               VkIndirectCommandsTokenNVX.Buffer pIndirectCommandsTokens,
                                               int maxSequencesCount,
                                               @Nullable
                                               VkCommandBuffer targetCommandBuffer,
                                               long sequencesCountBuffer,
                                               long sequencesCountOffset,
                                               long sequencesIndexBuffer,
                                               long sequencesIndexOffset)
        Initializes this struct with the specified values.
      • malloc

        public static VkCmdProcessCommandsInfoNVX malloc()
        Returns a new VkCmdProcessCommandsInfoNVX instance allocated with memAlloc. The instance must be explicitly freed.
      • create

        public static VkCmdProcessCommandsInfoNVX create​(long address)
        Returns a new VkCmdProcessCommandsInfoNVX instance for the specified memory address.
      • callocStack

        public static VkCmdProcessCommandsInfoNVX callocStack()
        Returns a new VkCmdProcessCommandsInfoNVX instance allocated on the thread-local MemoryStack and initializes all its bits to zero.
      • callocStack

        public static VkCmdProcessCommandsInfoNVX callocStack​(MemoryStack stack)
        Returns a new VkCmdProcessCommandsInfoNVX instance allocated on the specified MemoryStack and initializes all its bits to zero.
        Parameters:
        stack - the stack from which to allocate
      • nsType

        public static int nsType​(long struct)
        Unsafe version of sType().
      • npNext

        public static long npNext​(long struct)
        Unsafe version of pNext().
      • nobjectTable

        public static long nobjectTable​(long struct)
        Unsafe version of objectTable().
      • nindirectCommandsLayout

        public static long nindirectCommandsLayout​(long struct)
        Unsafe version of indirectCommandsLayout().
      • nindirectCommandsTokenCount

        public static int nindirectCommandsTokenCount​(long struct)
        Unsafe version of indirectCommandsTokenCount().
      • nmaxSequencesCount

        public static int nmaxSequencesCount​(long struct)
        Unsafe version of maxSequencesCount().
      • ntargetCommandBuffer

        public static long ntargetCommandBuffer​(long struct)
        Unsafe version of targetCommandBuffer().
      • nsequencesCountBuffer

        public static long nsequencesCountBuffer​(long struct)
        Unsafe version of sequencesCountBuffer().
      • nsequencesCountOffset

        public static long nsequencesCountOffset​(long struct)
        Unsafe version of sequencesCountOffset().
      • nsequencesIndexBuffer

        public static long nsequencesIndexBuffer​(long struct)
        Unsafe version of sequencesIndexBuffer().
      • nsequencesIndexOffset

        public static long nsequencesIndexOffset​(long struct)
        Unsafe version of sequencesIndexOffset().
      • nsType

        public static void nsType​(long struct,
                                  int value)
        Unsafe version of sType.
      • npNext

        public static void npNext​(long struct,
                                  long value)
        Unsafe version of pNext.
      • nobjectTable

        public static void nobjectTable​(long struct,
                                        long value)
        Unsafe version of objectTable.
      • nindirectCommandsLayout

        public static void nindirectCommandsLayout​(long struct,
                                                   long value)
        Unsafe version of indirectCommandsLayout.
      • nindirectCommandsTokenCount

        public static void nindirectCommandsTokenCount​(long struct,
                                                       int value)
        Sets the specified value to the indirectCommandsTokenCount field of the specified struct.
      • nmaxSequencesCount

        public static void nmaxSequencesCount​(long struct,
                                              int value)
        Unsafe version of maxSequencesCount.
      • nsequencesCountBuffer

        public static void nsequencesCountBuffer​(long struct,
                                                 long value)
        Unsafe version of sequencesCountBuffer.
      • nsequencesCountOffset

        public static void nsequencesCountOffset​(long struct,
                                                 long value)
        Unsafe version of sequencesCountOffset.
      • nsequencesIndexBuffer

        public static void nsequencesIndexBuffer​(long struct,
                                                 long value)
        Unsafe version of sequencesIndexBuffer.
      • nsequencesIndexOffset

        public static void nsequencesIndexOffset​(long struct,
                                                 long value)
        Unsafe version of sequencesIndexOffset.
      • validate

        public static void validate​(long struct)
        Validates pointer members that should not be NULL.
        Parameters:
        struct - the struct to validate
      • validate

        public static void validate​(long array,
                                    int count)
        Calls validate(long) for each struct contained in the specified struct array.
        Parameters:
        array - the struct array to validate
        count - the number of structs in array