C Specification
The VkPhysicalDeviceMeshShaderPropertiesNV
structure is defined as:
typedef 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;
} VkPhysicalDeviceMeshShaderPropertiesNV;
Members
The members of the VkPhysicalDeviceMeshShaderPropertiesNV
structure
describe the following implementation-dependent limits:
Description
-
sType
is the type of this structure. -
pNext
isNULL
or a pointer to an extension-specific structure. -
maxDrawMeshTasksCount
is the maximum number of local workgroups that can be launched by a single draw mesh tasks command. See https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#drawing-mesh-shading. -
maxTaskWorkGroupInvocations
is 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 theLocalSize
execution mode in shader modules or by the object decorated by theWorkgroupSize
decoration, must be less than or equal to this limit. -
maxTaskWorkGroupSize
[3] is 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. Thex
,y
, andz
sizes, as specified by theLocalSize
execution mode or by the object decorated by theWorkgroupSize
decoration in shader modules, must be less than or equal to the corresponding limit. -
maxTaskTotalMemorySize
is the maximum number of bytes that the task shader can use in total for shared and output memory combined. -
maxTaskOutputCount
is the maximum number of output tasks a single task shader workgroup can emit. -
maxMeshWorkGroupInvocations
is 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 theLocalSize
execution mode in shader modules or by the object decorated by theWorkgroupSize
decoration, must be less than or equal to this limit. -
maxMeshWorkGroupSize
[3] is 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. Thex
,y
, andz
sizes, as specified by theLocalSize
execution mode or by the object decorated by theWorkgroupSize
decoration in shader modules, must be less than or equal to the corresponding limit. -
maxMeshTotalMemorySize
is the maximum number of bytes that the mesh shader can use in total for shared and output memory combined. -
maxMeshOutputVertices
is the maximum number of vertices a mesh shader output can store. -
maxMeshOutputPrimitives
is the maximum number of primitives a mesh shader output can store. -
maxMeshMultiviewViewCount
is the maximum number of multi-view views a mesh shader can use. -
meshOutputPerVertexGranularity
is 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 tomaxMeshTotalMemorySize
. -
meshOutputPerPrimitiveGranularity
is 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 tomaxMeshTotalMemorySize
.
If the VkPhysicalDeviceMeshShaderPropertiesNV
structure is included in
the pNext
chain of VkPhysicalDeviceProperties2, it is filled
with the implementation-dependent limits.
See Also
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.
Copyright
Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.