vulkan
Safe HaskellNone
LanguageHaskell2010

Vulkan.Extensions.VK_EXT_mesh_shader

Description

Name

VK_EXT_mesh_shader - device extension

VK_EXT_mesh_shader

Name String
VK_EXT_mesh_shader
Extension Type
Device extension
Registered Extension Number
329
Revision
1
Ratification Status
Ratified
Extension and Version Dependencies
VK_KHR_spirv_1_4 or Vulkan Version 1.2
API Interactions
  • Interacts with VK_VERSION_1_2
  • Interacts with VK_AMD_draw_indirect_count
  • Interacts with VK_EXT_device_generated_commands
  • Interacts with VK_KHR_draw_indirect_count
  • Interacts with VK_KHR_fragment_shading_rate
  • Interacts with VK_NV_device_generated_commands
  • Interacts with VkPhysicalDeviceMeshShaderFeaturesEXT::primitiveFragmentShadingRateMeshShader
SPIR-V Dependencies
Contact
Extension Proposal
VK_EXT_mesh_shader

Other Extension Metadata

Last Modified Date
2022-01-20
Interactions and External Dependencies
  • This extension provides API support for GLSL_EXT_mesh_shader
  • Interacts with Vulkan 1.1
  • Interacts with VK_KHR_multiview
  • Interacts with VK_KHR_fragment_shading_rate
Contributors
  • Christoph Kubisch, NVIDIA
  • Pat Brown, NVIDIA
  • Jeff Bolz, NVIDIA
  • Daniel Koch, NVIDIA
  • Piers Daniell, NVIDIA
  • Pierre Boudier, NVIDIA
  • Patrick Mours, NVIDIA
  • David Zhao Akeley, NVIDIA
  • Kedarnath Thangudu, NVIDIA
  • Timur Kristóf, Valve
  • Hans-Kristian Arntzen, Valve
  • Philip Rebohle, Valve
  • Mike Blumenkrantz, Valve
  • Slawomir Grajewski, Intel
  • Michal Pietrasiuk, Intel
  • Mariusz Merecki, Intel
  • Tom Olson, ARM
  • Jan-Harald Fredriksen, ARM
  • Sandeep Kakarlapudi, ARM
  • Ruihao Zhang, QUALCOMM
  • Ricardo Garcia, Igalia, S.L.
  • Tobias Hector, AMD
  • Stu Smith, AMD

Description

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.

This extension also adds support for the following SPIR-V extension in Vulkan:

New Commands

If Vulkan Version 1.2 or VK_KHR_draw_indirect_count or VK_AMD_draw_indirect_count is supported:

New Structures

New Enum Constants

If VK_EXT_device_generated_commands is supported:

If VK_NV_device_generated_commands is supported:

New or Modified Built-In Variables

  • PrimitivePointIndicesEXT
  • PrimitiveLineIndicesEXT
  • PrimitiveTriangleIndicesEXT
  • (modified)Position
  • (modified)PointSize
  • (modified)ClipDistance
  • (modified)CullDistance
  • (modified)PrimitiveId
  • (modified)Layer
  • (modified)ViewportIndex
  • (modified)NumWorkgroups
  • (modified)WorkgroupSize
  • (modified)WorkgroupId
  • (modified)LocalInvocationId
  • (modified)GlobalInvocationId
  • (modified)LocalInvocationIndex
  • (modified)NumSubgroups
  • (modified)SubgroupId
  • (modified)DrawIndex
  • (modified)PrimitiveShadingRateKHR
  • (modified)ViewIndex

New SPIR-V Capability

Version History

  • Revision 1, 2022-03-08 (Christoph Kubisch, Daniel Koch, Patrick Mours)

    • Initial revision

See Also

No cross-references are available

Document Notes

For more information, see the Vulkan Specification.

This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.

Synopsis

Documentation

cmdDrawMeshTasksEXT Source #

Arguments

:: MonadIO io 
=> CommandBuffer

commandBuffer is the command buffer into which the command will be recorded.

-> ("groupCountX" ::: Word32)

groupCountX is the number of local workgroups to dispatch in the X dimension.

-> ("groupCountY" ::: Word32)

groupCountY is the number of local workgroups to dispatch in the Y dimension.

-> ("groupCountZ" ::: Word32)

groupCountZ is the number of local workgroups to dispatch in the Z dimension.

-> io () 

vkCmdDrawMeshTasksEXT - Draw mesh task work items

Description

When the command is executed, a global workgroup consisting of groupCountX × groupCountY × groupCountZ local workgroups is assembled.

Valid Usage

Valid Usage (Implicit)

  • commandBuffer must be in the recording state
  • The CommandPool that commandBuffer was allocated from must support QUEUE_GRAPHICS_BIT operations
  • This command must only be called inside of a render pass instance
  • This command must not be called between suspended render pass instances
  • This command must only be called outside of a video coding scope

Host Synchronization

  • Host access to commandBuffer must be externally synchronized
  • Host access to the CommandPool that commandBuffer was allocated from must be externally synchronized

Command Properties

'

Command Buffer LevelsRender Pass ScopeVideo Coding ScopeSupported Queue TypesCommand Type
Primary SecondaryInside Outside VK_QUEUE_GRAPHICS_BIT Action

Conditional Rendering

vkCmdDrawMeshTasksEXT is affected by conditional rendering

See Also

VK_EXT_mesh_shader, CommandBuffer

cmdDrawMeshTasksIndirectEXT Source #

Arguments

:: MonadIO io 
=> CommandBuffer

commandBuffer is the command buffer into which the command is recorded.

-> Buffer

buffer is the buffer containing draw parameters.

-> ("offset" ::: DeviceSize)

offset is the byte offset into buffer where parameters begin.

-> ("drawCount" ::: Word32)

drawCount is the number of draws to execute, and can be zero.

-> ("stride" ::: Word32)

stride is the byte stride between successive sets of draw parameters.

-> io () 

vkCmdDrawMeshTasksIndirectEXT - Issue an indirect mesh tasks draw into a command buffer

Description

cmdDrawMeshTasksIndirectEXT behaves similarly to cmdDrawMeshTasksEXT except that the parameters are read by the device from a buffer during execution. drawCount draws are executed by the command, with parameters taken from buffer starting at offset and increasing by stride bytes for each successive draw. The parameters of each draw are encoded in an array of DrawMeshTasksIndirectCommandEXT structures. If drawCount is less than or equal to one, stride is ignored.

Valid Usage

Valid Usage (Implicit)

  • buffer must be a valid Buffer handle
  • commandBuffer must be in the recording state
  • The CommandPool that commandBuffer was allocated from must support QUEUE_GRAPHICS_BIT operations
  • This command must only be called inside of a render pass instance
  • This command must not be called between suspended render pass instances
  • This command must only be called outside of a video coding scope
  • Both of buffer, and commandBuffer must have been created, allocated, or retrieved from the same Device

Host Synchronization

  • Host access to commandBuffer must be externally synchronized
  • Host access to the CommandPool that commandBuffer was allocated from must be externally synchronized

Command Properties

'

Command Buffer LevelsRender Pass ScopeVideo Coding ScopeSupported Queue TypesCommand Type
Primary SecondaryInside Outside VK_QUEUE_GRAPHICS_BIT Action

Conditional Rendering

vkCmdDrawMeshTasksIndirectEXT is affected by conditional rendering

See Also

VK_EXT_mesh_shader, Buffer, CommandBuffer, DeviceSize

cmdDrawMeshTasksIndirectCountEXT Source #

Arguments

:: MonadIO io 
=> CommandBuffer

commandBuffer is the command buffer into which the command is recorded.

-> Buffer

buffer is the buffer containing draw parameters.

-> ("offset" ::: DeviceSize)

offset is the byte offset into buffer where parameters begin.

-> ("countBuffer" ::: Buffer)

countBuffer is the buffer containing the draw count.

-> ("countBufferOffset" ::: DeviceSize)

countBufferOffset is the byte offset into countBuffer where the draw count begins.

-> ("maxDrawCount" ::: Word32)

maxDrawCount 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.

-> ("stride" ::: Word32)

stride is the byte stride between successive sets of draw parameters.

-> io () 

vkCmdDrawMeshTasksIndirectCountEXT - Perform an indirect mesh tasks draw with the draw count sourced from a buffer

Description

cmdDrawMeshTasksIndirectCountEXT behaves similarly to cmdDrawMeshTasksIndirectEXT except that the draw count is read by the device from a buffer during execution. The command will read an unsigned 32-bit integer from countBuffer located at countBufferOffset and use this as the draw count.

Valid Usage

Valid Usage (Implicit)

  • buffer must be a valid Buffer handle
  • countBuffer must be a valid Buffer handle
  • commandBuffer must be in the recording state
  • The CommandPool that commandBuffer was allocated from must support QUEUE_GRAPHICS_BIT operations
  • This command must only be called inside of a render pass instance
  • This command must not be called between suspended render pass instances
  • This command must only be called outside of a video coding scope
  • Each of buffer, commandBuffer, and countBuffer must have been created, allocated, or retrieved from the same Device

Host Synchronization

  • Host access to commandBuffer must be externally synchronized
  • Host access to the CommandPool that commandBuffer was allocated from must be externally synchronized

Command Properties

'

Command Buffer LevelsRender Pass ScopeVideo Coding ScopeSupported Queue TypesCommand Type
Primary SecondaryInside Outside VK_QUEUE_GRAPHICS_BIT Action

Conditional Rendering

vkCmdDrawMeshTasksIndirectCountEXT is affected by conditional rendering

See Also

VK_AMD_draw_indirect_count, VK_EXT_mesh_shader, VK_KHR_draw_indirect_count, VK_VERSION_1_2, Buffer, CommandBuffer, DeviceSize

data PhysicalDeviceMeshShaderFeaturesEXT Source #

VkPhysicalDeviceMeshShaderFeaturesEXT - Structure describing mesh shading features that can be supported by an implementation

Description

If the PhysicalDeviceMeshShaderFeaturesEXT structure is included in the pNext chain of the PhysicalDeviceFeatures2 structure passed to getPhysicalDeviceFeatures2, it is filled in to indicate whether each corresponding feature is supported. If the application wishes to use a Device with any features described by PhysicalDeviceMeshShaderFeaturesEXT, it must add an instance of the structure, with the desired feature members set to TRUE, to the pNext chain of DeviceCreateInfo when creating the Device.

The corresponding features of the PhysicalDeviceMeshShaderFeaturesNV structure must match those in PhysicalDeviceMeshShaderFeaturesEXT.

Valid Usage

Valid Usage (Implicit)

See Also

VK_EXT_mesh_shader, Bool32, StructureType

Constructors

PhysicalDeviceMeshShaderFeaturesEXT 

Fields

Instances

Instances details
Eq PhysicalDeviceMeshShaderFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_mesh_shader

Storable PhysicalDeviceMeshShaderFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_mesh_shader

Show PhysicalDeviceMeshShaderFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_mesh_shader

FromCStruct PhysicalDeviceMeshShaderFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_mesh_shader

ToCStruct PhysicalDeviceMeshShaderFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_mesh_shader

Zero PhysicalDeviceMeshShaderFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_mesh_shader

data PhysicalDeviceMeshShaderPropertiesEXT Source #

VkPhysicalDeviceMeshShaderPropertiesEXT - Structure describing mesh shading properties

Members

The members of the PhysicalDeviceMeshShaderPropertiesEXT structure describe the following implementation-dependent limits:

Description

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

Valid Usage (Implicit)

See Also

VK_EXT_mesh_shader, Bool32, StructureType

Constructors

PhysicalDeviceMeshShaderPropertiesEXT 

Fields

  • maxTaskWorkGroupTotalCount :: Word32

    maxTaskWorkGroupTotalCount is the maximum number of local workgroups that can be launched for a task shader by a mesh tasks drawing command.

  • maxTaskWorkGroupCount :: (Word32, Word32, Word32)

    maxTaskWorkGroupCount[3] is the maximum number of local workgroups that can be launched for a task shader in each dimension by a mesh tasks drawing command. These three values represent the maximum number of local workgroups for the X, Y, and Z dimensions, respectively. The workgroup count parameters to the drawing commands must be less than or equal to the corresponding limit. The product of these dimensions must be less than or equal to maxTaskWorkGroupTotalCount.

  • maxTaskWorkGroupInvocations :: Word32

    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 the LocalSize or LocalSizeId execution mode in shader modules or by the object decorated by the WorkgroupSize decoration, must be less than or equal to this limit.

  • maxTaskWorkGroupSize :: (Word32, Word32, Word32)

    maxTaskWorkGroupSize[3] is the maximum size of a local workgroup for a task shader in each dimension. 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 or LocalSizeId execution mode or by the object decorated by the WorkgroupSize decoration in shader modules, must be less than or equal to the corresponding limit.

  • maxTaskPayloadSize :: Word32

    maxTaskPayloadSize is the maximum total storage size, in bytes, available for variables declared with the TaskPayloadWorkgroupEXT storage class in shader modules in the task shader stage.

  • maxTaskSharedMemorySize :: Word32

    maxTaskSharedMemorySize is the maximum total storage size, in bytes, available for variables declared with the Workgroup storage class in shader modules in the task shader stage.

  • maxTaskPayloadAndSharedMemorySize :: Word32

    maxTaskPayloadAndSharedMemorySize is the maximum total storage size, in bytes, available for variables that are declared with the TaskPayloadWorkgroupEXT or Workgroup storage class, in shader modules in the task shader stage.

  • maxMeshWorkGroupTotalCount :: Word32

    maxMeshWorkGroupTotalCount is the maximum number of local workgroups that can be launched for a mesh shader, either directly by a mesh tasks drawing command, or emitted by a single task shader workgroup.

  • maxMeshWorkGroupCount :: (Word32, Word32, Word32)

    maxMeshWorkGroupCount[3] is the maximum number of local workgroups that can be launched for a mesh shader in each dimension, either directly by a mesh tasks drawing command, or emitted by a single task shader workgroup. These three values represent the maximum number of local output tasks for the X, Y, and Z dimensions, respectively. The workgroup count parameters to the OpEmitMeshTasksEXT must be less than or equal to the corresponding limit. The product of these dimensions must be less than or equal to maxMeshWorkGroupTotalCount.

  • maxMeshWorkGroupInvocations :: Word32

    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 the LocalSize or LocalSizeId execution mode in shader modules or by the object decorated by the WorkgroupSize decoration, must be less than or equal to this limit.

  • maxMeshWorkGroupSize :: (Word32, Word32, Word32)

    maxMeshWorkGroupSize[3] is the maximum size of a local workgroup for a mesh shader in each dimension. 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 or LocalSizeId execution mode or by the object decorated by the WorkgroupSize decoration in shader modules, must be less than or equal to the corresponding limit.

  • maxMeshSharedMemorySize :: Word32

    maxMeshSharedMemorySize is the maximum total storage size, in bytes, available for variables declared with the Workgroup storage class in shader modules in the mesh shader stage.

  • maxMeshPayloadAndSharedMemorySize :: Word32

    maxMeshPayloadAndSharedMemorySize is the maximum total storage size, in bytes, available for variables that are declared with the TaskPayloadWorkgroupEXT or Workgroup storage class in shader modules in the mesh shader stage.

  • maxMeshOutputMemorySize :: Word32

    maxMeshOutputMemorySize is the maximum total storage size, in bytes, available for output variables in shader modules in the mesh shader stage, according to the formula in Mesh Shader Output.

  • maxMeshPayloadAndOutputMemorySize :: Word32

    maxMeshPayloadAndOutputMemorySize is the maximum total storage size, in bytes, available for variables that are declared with the TaskPayloadWorkgroupEXT storage class, or output variables in shader modules in the mesh shader stage, according to the formula in Mesh Shader Output.

  • maxMeshOutputComponents :: Word32

    maxMeshOutputComponents is the maximum number of components of output variables which can be output from the mesh shader stage.

  • maxMeshOutputVertices :: Word32

    maxMeshOutputVertices is the maximum number of vertices which can be emitted by a single mesh shader workgroup.

  • maxMeshOutputPrimitives :: Word32

    maxMeshOutputPrimitives is the maximum number of primitives which can be emitted by a single mesh shader workgroup.

  • maxMeshOutputLayers :: Word32

    maxMeshOutputLayers is one greater than the maximum layer index that can be output from the mesh shader stage.

  • maxMeshMultiviewViewCount :: Word32

    maxMeshMultiviewViewCount is one greater than the maximum view index that can be used by any mesh shader.

  • meshOutputPerVertexGranularity :: Word32

    meshOutputPerVertexGranularity is the granularity of vertex allocation. The number of output vertices allocated for the mesh shader stage is padded to a multiple of this number. The value can be used to calculate the required storage size for output variables in shader modules in the mesh shader stage, which must be less than or equal to maxMeshOutputMemorySize.

  • meshOutputPerPrimitiveGranularity :: Word32

    meshOutputPerPrimitiveGranularity is the granularity of primitive allocation. The number of output primitives allocated for the mesh shader stage is padded to a multiple of this number. The value can be used to calculate the required storage size for output variables in shader modules in the mesh shader stage, which must be less than or equal to maxMeshOutputMemorySize.

  • maxPreferredTaskWorkGroupInvocations :: Word32

    maxPreferredTaskWorkGroupInvocations is the maximum number of task shader invocations in a single workgroup that is preferred by the implementation for optimal performance. The value is guaranteed to be a multiple of a supported subgroup size for the task shader stage.

  • maxPreferredMeshWorkGroupInvocations :: Word32

    maxPreferredMeshWorkGroupInvocations is the maximum number of mesh shader invocations in a single workgroup that is preferred by the implementation for optimal performance. The value is guaranteed to be a multiple of a supported subgroup size for the mesh shader stage.

  • prefersLocalInvocationVertexOutput :: Bool

    prefersLocalInvocationVertexOutput specifies whether writes to the vertex output array in a mesh shader yield best performance when the array index matches LocalInvocationIndex.

  • prefersLocalInvocationPrimitiveOutput :: Bool

    prefersLocalInvocationPrimitiveOutput specifies whether writes to the primitive output array in a mesh shader yield best performance when the array index matches LocalInvocationIndex.

  • prefersCompactVertexOutput :: Bool

    prefersCompactVertexOutput specifies whether output vertices should be compacted after custom culling in the mesh shader for best performance, otherwise keeping the vertices at their original location may be better.

  • prefersCompactPrimitiveOutput :: Bool

    prefersCompactPrimitiveOutput specifies whether output primitives should be compacted after custom culling in the mesh shader for best performance, otherwise the use of CullPrimitiveEXT may be better.

Instances

Instances details
Eq PhysicalDeviceMeshShaderPropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_mesh_shader

Storable PhysicalDeviceMeshShaderPropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_mesh_shader

Show PhysicalDeviceMeshShaderPropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_mesh_shader

FromCStruct PhysicalDeviceMeshShaderPropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_mesh_shader

ToCStruct PhysicalDeviceMeshShaderPropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_mesh_shader

Zero PhysicalDeviceMeshShaderPropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_mesh_shader

data DrawMeshTasksIndirectCommandEXT Source #

VkDrawMeshTasksIndirectCommandEXT - Structure specifying a mesh tasks draw indirect command

Description

The members of DrawMeshTasksIndirectCommandEXT have the same meaning as the similarly named parameters of cmdDrawMeshTasksEXT.

Valid Usage

See Also

VK_EXT_mesh_shader, cmdDrawMeshTasksIndirectEXT

Constructors

DrawMeshTasksIndirectCommandEXT 

Fields

  • groupCountX :: Word32

    groupCountX is the number of local workgroups to dispatch in the X dimension.

  • groupCountY :: Word32

    groupCountY is the number of local workgroups to dispatch in the Y dimension.

  • groupCountZ :: Word32

    groupCountZ is the number of local workgroups to dispatch in the Z dimension.

Instances

Instances details
Eq DrawMeshTasksIndirectCommandEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_mesh_shader

Storable DrawMeshTasksIndirectCommandEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_mesh_shader

Show DrawMeshTasksIndirectCommandEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_mesh_shader

FromCStruct DrawMeshTasksIndirectCommandEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_mesh_shader

ToCStruct DrawMeshTasksIndirectCommandEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_mesh_shader

Zero DrawMeshTasksIndirectCommandEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_mesh_shader

type EXT_MESH_SHADER_EXTENSION_NAME = "VK_EXT_mesh_shader" Source #

newtype IndirectCommandsTokenTypeNV Source #

Instances

Instances details
Eq IndirectCommandsTokenTypeNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Ord IndirectCommandsTokenTypeNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Storable IndirectCommandsTokenTypeNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Read IndirectCommandsTokenTypeNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Show IndirectCommandsTokenTypeNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Zero IndirectCommandsTokenTypeNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

newtype IndirectCommandsTokenTypeEXT Source #

VkIndirectCommandsTokenTypeEXT - Enum specifying token commands

Description

'

Common TokensCommand Data
INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXTu32[] array of indices into the indirect execution set
INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXTu32[] raw data
INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_DATA_EXTu8[] raw data
INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXTu32 placeholder data (not accessed by shader)
INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_DATA_SEQUENCE_INDEX_EXTu32 placeholder data (not accessed by shader)
Compute Tokens
INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_EXTDispatchIndirectCommand
Ray Tracing Tokens
INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXTTraceRaysIndirectCommand2KHR
Graphics State Tokens
INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXTBindIndexBufferIndirectCommandEXT
INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXTBindVertexBufferIndirectCommandEXT
Graphics Draw Tokens
INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_EXTDrawIndexedIndirectCommand
INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_EXTDrawIndirectCommand
INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_EXTDrawMeshTasksIndirectCommandEXT
INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXTDrawMeshTasksIndirectCommandNV
Graphics Draw Count Tokens
INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_COUNT_EXTDrawIndirectCountIndirectCommandEXT with VkDrawIndexedIndirectCommand
INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_COUNT_EXTDrawIndirectCountIndirectCommandEXT with VkDrawIndirectCommand
INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXTDrawIndirectCountIndirectCommandEXT with VkDrawMeshTasksIndirectCommandEXT
INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXTDrawIndirectCountIndirectCommandEXT with VkDrawMeshTasksIndirectCommandNV

Supported Indirect Command Tokens

See Also

VK_EXT_device_generated_commands, IndirectCommandsLayoutTokenEXT

Bundled Patterns

pattern INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_EXT :: IndirectCommandsTokenTypeEXT 
pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_COUNT_EXT :: IndirectCommandsTokenTypeEXT 
pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_EXT :: IndirectCommandsTokenTypeEXT 
pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_COUNT_EXT :: IndirectCommandsTokenTypeEXT 
pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_EXT :: IndirectCommandsTokenTypeEXT 
pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT :: IndirectCommandsTokenTypeEXT 
pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT :: IndirectCommandsTokenTypeEXT 
pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_EXT :: IndirectCommandsTokenTypeEXT 
pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXT :: IndirectCommandsTokenTypeEXT 
pattern INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT :: IndirectCommandsTokenTypeEXT 
pattern INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT :: IndirectCommandsTokenTypeEXT 
pattern INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT :: IndirectCommandsTokenTypeEXT 
pattern INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_DATA_EXT :: IndirectCommandsTokenTypeEXT 
pattern INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_DATA_SEQUENCE_INDEX_EXT :: IndirectCommandsTokenTypeEXT 
pattern INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT :: IndirectCommandsTokenTypeEXT 
pattern INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT :: IndirectCommandsTokenTypeEXT 
pattern INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT :: IndirectCommandsTokenTypeEXT 

Instances

Instances details
Eq IndirectCommandsTokenTypeEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_device_generated_commands

Ord IndirectCommandsTokenTypeEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_device_generated_commands

Storable IndirectCommandsTokenTypeEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_device_generated_commands

Read IndirectCommandsTokenTypeEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_device_generated_commands

Show IndirectCommandsTokenTypeEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_device_generated_commands

Zero IndirectCommandsTokenTypeEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_device_generated_commands