There are new programmable shader types — the task and mesh shader — to generate these collections to be processed by fixed-function primitive assembly and rasterization logic. When task and mesh shaders are dispatched, they replace the core pre-rasterization stages, including vertex array attribute fetching, vertex shader processing, tessellation, and geometry shader processing.
This extension also adds support for the following SPIR-V extension in Vulkan:
VK_NV_mesh_shaderVK_KHR_get_physical_device_properties2SPV_NV_mesh_shaderGLSL_NV_mesh_shader| Modifier and Type | Field and Description |
|---|---|
| public static final String | VK_NV_MESH_SHADER_EXTENSION_NAME
The extension name. |
| public static final int | VK_NV_MESH_SHADER_SPEC_VERSION
The extension specification version. |
| public static final int | VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV
Extends |
| public static final int | VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV
Extends |
| public static final int | VK_SHADER_STAGE_MESH_BIT_NV
Extends |
| public static final int | VK_SHADER_STAGE_TASK_BIT_NV
Extends |
| public static final int | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV
Extends |
| public static final int | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV
Extends |
| Access | Constructor and Description |
|---|---|
| protected |
| Modifier and Type | Method and Description |
|---|---|
| public static void | vkCmdDrawMeshTasksIndirectCountNV(VkCommandBuffer
the command buffer into which the command is recorded. commandBuffer, long the buffer containing draw parameters. buffer, long the byte offset into offset, long buffer where parameters begin.the buffer containing the draw count. countBuffer, long the byte offset into countBufferOffset, int countBuffer where the draw count begins.specifies the maximum number of draws that will be executed. The actual number of executed draw calls is the minimum of the count specified in maxDrawCount, int countBuffer and maxDrawCount.the byte stride between successive sets of draw parameters. stride)Perform an indirect mesh tasks draw with the draw count sourced from a buffer. |
| public static void | vkCmdDrawMeshTasksIndirectNV(VkCommandBuffer
the command buffer into which the command is recorded. commandBuffer, long the buffer containing draw parameters. buffer, long the byte offset into offset, int buffer where parameters begin.the number of draws to execute, and can be zero. drawCount, int the byte stride between successive sets of draw parameters. stride)Issue an indirect mesh tasks draw into a command buffer. |
| public static void | vkCmdDrawMeshTasksNV(VkCommandBuffer
the command buffer into which the command will be recorded. commandBuffer, int the number of local workgroups to dispatch in the X dimension. Y and Z dimension are implicitly set to one. taskCount, int the X component of the first workgroup ID. firstTask)Draw mesh task work items. |