HORIZON HASKELLDocslts/ghc-10.0.x8174fa42026-10-11Search names, modules, packages, or :: a typeCtrl K

GHC 10.0.0.20260917 · lts/ghc-10.0.x · 8174fa4 · 2026-10-11

Modulevulkan-3.27GHC2021

Vulkan.Extensions.VK_NV_device_generated_commands_compute

Name

VK_NV_device_generated_commands_compute - device extension

VK_NV_device_generated_commands_compute

Name String

VK_NV_device_generated_commands_compute

Extension Type

Device extension

Registered Extension Number

429

Revision

2

Ratification Status

Not ratified

Extension and Version Dependencies

VK_NV_device_generated_commands

Contact

Other Extension Metadata

Last Modified Date

2023-07-21

Contributors
  • Vikram Kushwaha, NVIDIA

  • Jeff Bolz, NVIDIA

  • Christoph Kubisch, NVIDIA

  • Piers Daniell, NVIDIA

  • Daniel Koch, NVIDIA

  • Hans-Kristian Arntzen, Valve

  • Mike Blumenkrantz, VALVE

Description

This extension allows the device to generate commands for binding compute pipelines, setting push constants and launching compute dispatches.

New Commands

New Structures

New Enum Constants

Version History

  • Revision 2, 2023-07-21 (Vikram Kushwaha)

    • Rename vkCmdUpdatePipelineIndirectBuffer to vkCmdUpdatePipelineIndirectBufferNV

  • Revision 1, 2023-06-09 (Vikram Kushwaha)

    • First 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.

  • 7 types
  • 3 values
  • Packagevulkan-3.27
  • Exports24
  • LanguageGHC2021
  • LicenceBSD-3-Clause
  • SourceVK_NV_device_generated_commands_compute.hs
valuecmdUpdatePipelineIndirectBufferNV
  1. :: MonadIO io
  2. => CommandBuffer

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

  3. -> PipelineBindPoint

    pipelineBindPoint is a PipelineBindPoint value specifying the type of pipeline whose metadata will be saved.

  4. -> Pipeline

    pipeline is the pipeline whose metadata will be saved.

  5. -> io ()
#

vkCmdUpdatePipelineIndirectBufferNV - Update the indirect compute pipeline’s metadata

Description

cmdUpdatePipelineIndirectBufferNV is only allowed outside of a render pass. This command is treated as a “transfer” operation for the purposes of synchronization barriers. The writes to the address must be synchronized using stages PIPELINE_STAGE_2_COPY_BIT and PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV and with access masks ACCESS_MEMORY_WRITE_BIT and ACCESS_COMMAND_PREPROCESS_READ_BIT_NV respectively before using the results in preprocessing.

Valid Usage

Valid Usage (Implicit)

  • pipelineBindPoint must be a valid PipelineBindPoint value

  • pipeline must be a valid Pipeline handle

  • commandBuffer must be in the recording state

  • The CommandPool that commandBuffer was allocated from must support QUEUE_COMPUTE_BIT, QUEUE_GRAPHICS_BIT, or QUEUE_TRANSFER_BIT operations

  • This command must only be called outside 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 commandBuffer, and pipeline 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 Levels

Render Pass Scope

Video Coding Scope

Supported Queue Types

Command Type

Primary Secondary

Outside

Outside

VK_QUEUE_COMPUTE_BIT VK_QUEUE_GRAPHICS_BIT VK_QUEUE_TRANSFER_BIT

Action

Conditional Rendering

vkCmdUpdatePipelineIndirectBufferNV is not affected by conditional rendering

See Also

VK_NV_device_generated_commands_compute, CommandBuffer, Pipeline, PipelineBindPoint

valuegetPipelineIndirectMemoryRequirementsNV
  1. :: (Extendss ComputePipelineCreateInfo a, PokeChain a, Extendss MemoryRequirements2 b, PokeChain b, PeekChain b, MonadIO io)
  2. => Device

    device is the logical device that owns the buffer.

  3. -> ComputePipelineCreateInfo a

    pCreateInfo is a ComputePipelineCreateInfo structure specifying the creation parameters of the compute pipeline whose memory requirements are being queried.

  4. -> io (MemoryRequirements2 b)
#

vkGetPipelineIndirectMemoryRequirementsNV - Get the memory requirements for the compute indirect pipeline

Description

If pCreateInfo->pNext chain includes a pointer to a ComputePipelineIndirectBufferInfoNV structure, then the contents of that structure are ignored.

Valid Usage

Valid Usage (Implicit)

  • device must be a valid Device handle

See Also

VK_NV_device_generated_commands_compute, ComputePipelineCreateInfo, Device, MemoryRequirements2

valuegetPipelineIndirectDeviceAddressNV
  1. :: MonadIO io
  2. => Device

    device is the logical device on which the pipeline was created.

  3. -> PipelineIndirectDeviceAddressInfoNV

    pInfo is a pointer to a PipelineIndirectDeviceAddressInfoNV structure specifying the pipeline to retrieve the address for.

  4. -> io DeviceAddress
#

vkGetPipelineIndirectDeviceAddressNV - Get pipeline’s 64-bit device address

Valid Usage

Valid Usage (Implicit)

  • device must be a valid Device handle

See Also

VK_NV_device_generated_commands_compute, Device, PipelineIndirectDeviceAddressInfoNV

VkComputePipelineIndirectBufferInfoNV - Structure describing the device address where pipeline’s metadata will be saved

Description

If pipelineDeviceAddressCaptureReplay is zero, no specific address is requested. If pipelineDeviceAddressCaptureReplay is not zero, then it must be an address retrieved from an identically created pipeline on the same implementation. The pipeline metadata must also be placed on an identically created buffer and at the same offset using the cmdUpdatePipelineIndirectBufferNV command.

Valid Usage

Valid Usage (Implicit)

  • deviceAddress must be a valid DeviceAddress value

  • If pipelineDeviceAddressCaptureReplay is not 0, pipelineDeviceAddressCaptureReplay must be a valid DeviceAddress value

Structure Chaining

Extends the structure

See Also

VK_NV_device_generated_commands_compute, DeviceAddress, DeviceSize, StructureType

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero

VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV - Structure describing the device-generated compute features that can be supported by an implementation

Members

This structure describes the following features:

Description

If the PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV 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 PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV, 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.

Structure Chaining

Extends the structures

See Also

VK_NV_device_generated_commands_compute, Bool32, StructureType

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero

VkPipelineIndirectDeviceAddressInfoNV - Structure specifying the pipeline to query an address for

Valid Usage

Valid Usage (Implicit)

See Also

VK_NV_device_generated_commands_compute, Pipeline, PipelineBindPoint, StructureType, getPipelineIndirectDeviceAddressNV

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero

VkBindPipelineIndirectCommandNV - Structure specifying input data for the compute pipeline dispatch token

Valid Usage

Valid Usage (Implicit)

See Also

VK_NV_device_generated_commands_compute, DeviceAddress

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero
newtypenewtype IndirectCommandsTokenTypeNV
#
Instances6Eq, Ord, Read, Show, Storable, Zero