Top Description Fields Constructors Methods
org.lwjgl.vulkan

public Class NVMeshShader

extends Object
Class Inheritance
Imports
org.lwjgl.system.*

This extension provides a new mechanism allowing applications to generate collections of geometric primitives via programmable mesh shading. It is an alternative to the existing programmable primitive shading pipeline, which relied on generating input primitives by a fixed function assembler as well as fixed function vertex fetch.

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_shader
Name String
VK_NV_mesh_shader
Extension Type
Device extension
Registered Extension Number
203
Revision
1
Extension and Version Dependencies
VK_KHR_get_physical_device_properties2
Contact
Other Extension Metadata
Last Modified Date
2018-07-19
Interactions and External Dependencies
Contributors
  • Pat Brown, NVIDIA
  • Jeff Bolz, NVIDIA
  • Daniel Koch, NVIDIA
  • Piers Daniell, NVIDIA
  • Pierre Boudier, NVIDIA

Field Summary

Modifier and TypeField and Description
public static final String
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 VkPipelineStageFlagBits.

public static final int
VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV

Extends VkPipelineStageFlagBits.

public static final int
VK_SHADER_STAGE_MESH_BIT_NV

Extends VkShaderStageFlagBits.

public static final int
VK_SHADER_STAGE_TASK_BIT_NV

Extends VkShaderStageFlagBits.

public static final int
public static final int

Constructor Summary

AccessConstructor and Description
protected

Method Summary

Modifier and TypeMethod 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 buffer where parameters begin.
offset
,
long
the buffer containing the draw count.
countBuffer
,
long
the byte offset into countBuffer where the draw count begins.
countBufferOffset
,
int
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 countBuffer and maxDrawCount.
maxDrawCount
,
int
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 buffer where parameters begin.
offset
,
int
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.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait