Class VkPhysicalDeviceMeshShaderPropertiesNV

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

    public class VkPhysicalDeviceMeshShaderPropertiesNV
    extends org.lwjgl.system.Struct
    implements org.lwjgl.system.NativeResource
    Structure describing mesh shading properties.
    Description

    If the VkPhysicalDeviceMeshShaderPropertiesNV structure is included in the pNext chain of VkPhysicalDeviceProperties2, it is filled with the implementation-dependent limits.

    Valid Usage (Implicit)

    Member documentation

    • sType – the type of this structure.
    • pNextNULL or a pointer to an extension-specific structure.
    • maxDrawMeshTasksCount – the maximum number of local workgroups that can be launched by a single draw mesh tasks command. See Programmable Mesh Shading.
    • maxTaskWorkGroupInvocations – the maximum total number of task shader invocations in a single local workgroup. The product of the X, Y, and Z sizes, as specified by the LocalSize execution mode in shader modules or by the object decorated by the WorkgroupSize decoration, must be less than or equal to this limit.
    • maxTaskWorkGroupSize[3] – the maximum size of a local task workgroup. These three values represent the maximum local workgroup size in the X, Y, and Z dimensions, respectively. The x, y, and z sizes, as specified by the LocalSize execution mode or by the object decorated by the WorkgroupSize decoration in shader modules, must be less than or equal to the corresponding limit.
    • maxTaskTotalMemorySize – the maximum number of bytes that the task shader can use in total for shared and output memory combined.
    • maxTaskOutputCount – the maximum number of output tasks a single task shader workgroup can emit.
    • maxMeshWorkGroupInvocations – the maximum total number of mesh shader invocations in a single local workgroup. The product of the X, Y, and Z sizes, as specified by the LocalSize execution mode in shader modules or by the object decorated by the WorkgroupSize decoration, must be less than or equal to this limit.
    • maxMeshWorkGroupSize[3] – the maximum size of a local mesh workgroup. These three values represent the maximum local workgroup size in the X, Y, and Z dimensions, respectively. The x, y, and z sizes, as specified by the LocalSize execution mode or by the object decorated by the WorkgroupSize decoration in shader modules, must be less than or equal to the corresponding limit.
    • maxMeshTotalMemorySize – the maximum number of bytes that the mesh shader can use in total for shared and output memory combined.
    • maxMeshOutputVertices – the maximum number of vertices a mesh shader output can store.
    • maxMeshOutputPrimitives – the maximum number of primitives a mesh shader output can store.
    • maxMeshMultiviewViewCount – the maximum number of multi-view views a mesh shader can use.
    • meshOutputPerVertexGranularity – the granularity with which mesh vertex outputs are allocated. The value can be used to compute the memory size used by the mesh shader, which must be less than or equal to maxMeshTotalMemorySize.
    • meshOutputPerPrimitiveGranularity – the granularity with which mesh outputs qualified as per-primitive are allocated. The value can be used to compute the memory size used by the mesh shader, which must be less than or equal to maxMeshTotalMemorySize.

    Layout

    
     struct VkPhysicalDeviceMeshShaderPropertiesNV {
         VkStructureType sType;
         void * pNext;
         uint32_t maxDrawMeshTasksCount;
         uint32_t maxTaskWorkGroupInvocations;
         uint32_t maxTaskWorkGroupSize[3];
         uint32_t maxTaskTotalMemorySize;
         uint32_t maxTaskOutputCount;
         uint32_t maxMeshWorkGroupInvocations;
         uint32_t maxMeshWorkGroupSize[3];
         uint32_t maxMeshTotalMemorySize;
         uint32_t maxMeshOutputVertices;
         uint32_t maxMeshOutputPrimitives;
         uint32_t maxMeshMultiviewViewCount;
         uint32_t meshOutputPerVertexGranularity;
         uint32_t meshOutputPerPrimitiveGranularity;
     }
    • Field Detail

      • SIZEOF

        The struct size in bytes.
      • ALIGNOF

        The struct alignment in bytes.
      • STYPE, PNEXT, MAXDRAWMESHTASKSCOUNT, MAXTASKWORKGROUPINVOCATIONS, MAXTASKWORKGROUPSIZE, MAXTASKTOTALMEMORYSIZE, MAXTASKOUTPUTCOUNT, MAXMESHWORKGROUPINVOCATIONS, MAXMESHWORKGROUPSIZE, MAXMESHTOTALMEMORYSIZE, MAXMESHOUTPUTVERTICES, MAXMESHOUTPUTPRIMITIVES, MAXMESHMULTIVIEWVIEWCOUNT, MESHOUTPUTPERVERTEXGRANULARITY, MESHOUTPUTPERPRIMITIVEGRANULARITY

        The struct member offsets.
    • Constructor Detail

      • VkPhysicalDeviceMeshShaderPropertiesNV

        public VkPhysicalDeviceMeshShaderPropertiesNV​(java.nio.ByteBuffer container)
        Creates a VkPhysicalDeviceMeshShaderPropertiesNV 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()
        Specified by:
        sizeof in class org.lwjgl.system.Struct
      • sType

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

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

        public int maxDrawMeshTasksCount()
        Returns the value of the maxDrawMeshTasksCount field.
      • maxTaskWorkGroupInvocations

        public int maxTaskWorkGroupInvocations()
        Returns the value of the maxTaskWorkGroupInvocations field.
      • maxTaskWorkGroupSize

        public java.nio.IntBuffer maxTaskWorkGroupSize()
        Returns a IntBuffer view of the maxTaskWorkGroupSize field.
      • maxTaskWorkGroupSize

        public int maxTaskWorkGroupSize​(int index)
        Returns the value at the specified index of the maxTaskWorkGroupSize field.
      • maxTaskTotalMemorySize

        public int maxTaskTotalMemorySize()
        Returns the value of the maxTaskTotalMemorySize field.
      • maxTaskOutputCount

        public int maxTaskOutputCount()
        Returns the value of the maxTaskOutputCount field.
      • maxMeshWorkGroupInvocations

        public int maxMeshWorkGroupInvocations()
        Returns the value of the maxMeshWorkGroupInvocations field.
      • maxMeshWorkGroupSize

        public java.nio.IntBuffer maxMeshWorkGroupSize()
        Returns a IntBuffer view of the maxMeshWorkGroupSize field.
      • maxMeshWorkGroupSize

        public int maxMeshWorkGroupSize​(int index)
        Returns the value at the specified index of the maxMeshWorkGroupSize field.
      • maxMeshTotalMemorySize

        public int maxMeshTotalMemorySize()
        Returns the value of the maxMeshTotalMemorySize field.
      • maxMeshOutputVertices

        public int maxMeshOutputVertices()
        Returns the value of the maxMeshOutputVertices field.
      • maxMeshOutputPrimitives

        public int maxMeshOutputPrimitives()
        Returns the value of the maxMeshOutputPrimitives field.
      • maxMeshMultiviewViewCount

        public int maxMeshMultiviewViewCount()
        Returns the value of the maxMeshMultiviewViewCount field.
      • meshOutputPerVertexGranularity

        public int meshOutputPerVertexGranularity()
        Returns the value of the meshOutputPerVertexGranularity field.
      • meshOutputPerPrimitiveGranularity

        public int meshOutputPerPrimitiveGranularity()
        Returns the value of the meshOutputPerPrimitiveGranularity field.
      • malloc

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

        public static VkPhysicalDeviceMeshShaderPropertiesNV calloc()
        Returns a new VkPhysicalDeviceMeshShaderPropertiesNV instance allocated with memCalloc. The instance must be explicitly freed.
      • callocStack

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

        public static VkPhysicalDeviceMeshShaderPropertiesNV mallocStack​(org.lwjgl.system.MemoryStack stack)
        Returns a new VkPhysicalDeviceMeshShaderPropertiesNV instance allocated on the specified MemoryStack.
        Parameters:
        stack - the stack from which to allocate
      • callocStack

        public static VkPhysicalDeviceMeshShaderPropertiesNV callocStack​(org.lwjgl.system.MemoryStack stack)
        Returns a new VkPhysicalDeviceMeshShaderPropertiesNV 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().
      • nmaxDrawMeshTasksCount

        public static int nmaxDrawMeshTasksCount​(long struct)
        Unsafe version of maxDrawMeshTasksCount().
      • nmaxTaskWorkGroupInvocations

        public static int nmaxTaskWorkGroupInvocations​(long struct)
      • nmaxTaskWorkGroupSize

        public static java.nio.IntBuffer nmaxTaskWorkGroupSize​(long struct)
        Unsafe version of maxTaskWorkGroupSize().
      • nmaxTaskWorkGroupSize

        public static int nmaxTaskWorkGroupSize​(long struct,
                                                int index)
        Unsafe version of maxTaskWorkGroupSize.
      • nmaxTaskTotalMemorySize

        public static int nmaxTaskTotalMemorySize​(long struct)
        Unsafe version of maxTaskTotalMemorySize().
      • nmaxTaskOutputCount

        public static int nmaxTaskOutputCount​(long struct)
        Unsafe version of maxTaskOutputCount().
      • nmaxMeshWorkGroupInvocations

        public static int nmaxMeshWorkGroupInvocations​(long struct)
      • nmaxMeshWorkGroupSize

        public static java.nio.IntBuffer nmaxMeshWorkGroupSize​(long struct)
        Unsafe version of maxMeshWorkGroupSize().
      • nmaxMeshWorkGroupSize

        public static int nmaxMeshWorkGroupSize​(long struct,
                                                int index)
        Unsafe version of maxMeshWorkGroupSize.
      • nmaxMeshTotalMemorySize

        public static int nmaxMeshTotalMemorySize​(long struct)
        Unsafe version of maxMeshTotalMemorySize().
      • nmaxMeshOutputVertices

        public static int nmaxMeshOutputVertices​(long struct)
        Unsafe version of maxMeshOutputVertices().
      • nmaxMeshOutputPrimitives

        public static int nmaxMeshOutputPrimitives​(long struct)
        Unsafe version of maxMeshOutputPrimitives().
      • nmaxMeshMultiviewViewCount

        public static int nmaxMeshMultiviewViewCount​(long struct)
        Unsafe version of maxMeshMultiviewViewCount().
      • 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.