Class VkPhysicalDeviceMeshShaderPropertiesNV

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

    public class VkPhysicalDeviceMeshShaderPropertiesNV
    extends Struct
    implements 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

    • maxDrawMeshTasksCount – the maximum number of local workgroups that can be launched by a single draw mesh tasks command. See the “Programmable Mesh Shading” section.
    • 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 and by the object decorated by the WorkgroupSize decoration must be less than or equal to this limit.
    • maxTaskWorkGroupSize – 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 specified by the LocalSize execution mode and 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 and by the object decorated by the WorkgroupSize decoration must be less than or equal to this limit.
    • maxMeshWorkGroupSize – 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 specified by the LocalSize execution mode and 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;
     }