vulkan-3.26.1: Bindings to the Vulkan graphics API.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Vulkan.Extensions.VK_NV_device_generated_commands_compute

Description

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

BindPipelineIndirectCommandNV, ComputePipelineIndirectBufferInfoNV, PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV, PipelineIndirectDeviceAddressInfoNV, cmdUpdatePipelineIndirectBufferNV, getPipelineIndirectDeviceAddressNV, getPipelineIndirectMemoryRequirementsNV

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

cmdUpdatePipelineIndirectBufferNV Source #

Arguments

:: forall io. MonadIO io 
=> CommandBuffer

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

-> PipelineBindPoint

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

-> Pipeline

pipeline is the pipeline whose metadata will be saved.

-> 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 transfer, graphics, or compute operations
  • This command must only be called outside of a render pass instance
  • 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 LevelsRender Pass ScopeVideo Coding ScopeSupported Queue TypesCommand Type
Primary Secondary Outside Outside Transfer Graphics ComputeAction

See Also

VK_NV_device_generated_commands_compute, CommandBuffer, Pipeline, PipelineBindPoint

getPipelineIndirectMemoryRequirementsNV Source #

Arguments

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

device is the logical device that owns the buffer.

-> ComputePipelineCreateInfo a

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

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

getPipelineIndirectDeviceAddressNV Source #

Arguments

:: forall io. MonadIO io 
=> Device

device must be a valid Device handle

-> PipelineIndirectDeviceAddressInfoNV

pInfo must be a valid pointer to a valid PipelineIndirectDeviceAddressInfoNV structure

-> io DeviceAddress 

vkGetPipelineIndirectDeviceAddressNV - Get pipeline’s 64-bit device address

Valid Usage

Valid Usage (Implicit)

See Also

VK_NV_device_generated_commands_compute, Device, PipelineIndirectDeviceAddressInfoNV

data ComputePipelineIndirectBufferInfoNV Source #

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

Members

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)

  • pNext must be NULL

See Also

VK_NV_device_generated_commands_compute, DeviceAddress, DeviceSize, StructureType

Instances

Instances details
Storable ComputePipelineIndirectBufferInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands_compute

Show ComputePipelineIndirectBufferInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands_compute

Eq ComputePipelineIndirectBufferInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands_compute

FromCStruct ComputePipelineIndirectBufferInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands_compute

ToCStruct ComputePipelineIndirectBufferInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands_compute

Zero ComputePipelineIndirectBufferInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands_compute

data PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV Source #

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. PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV can also be used in the pNext chain of DeviceCreateInfo to selectively enable these features.

Valid Usage (Implicit)

See Also

VK_NV_device_generated_commands_compute, Bool32, StructureType

Constructors

PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV 

Fields

Instances

Instances details
Storable PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands_compute

Show PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands_compute

Eq PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands_compute

FromCStruct PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands_compute

ToCStruct PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands_compute

Zero PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands_compute

data PipelineIndirectDeviceAddressInfoNV Source #

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

PipelineIndirectDeviceAddressInfoNV 

Fields

Instances

Instances details
Storable PipelineIndirectDeviceAddressInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands_compute

Show PipelineIndirectDeviceAddressInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands_compute

Eq PipelineIndirectDeviceAddressInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands_compute

FromCStruct PipelineIndirectDeviceAddressInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands_compute

ToCStruct PipelineIndirectDeviceAddressInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands_compute

Zero PipelineIndirectDeviceAddressInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands_compute

data BindPipelineIndirectCommandNV Source #

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

Valid Usage

See Also

VK_NV_device_generated_commands_compute, DeviceAddress

Constructors

BindPipelineIndirectCommandNV 

Fields

  • pipelineAddress :: DeviceAddress

    pipelineAddress specifies the pipeline address of the compute pipeline that will be used in device generated rendering.

Instances

Instances details
Storable BindPipelineIndirectCommandNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands_compute

Show BindPipelineIndirectCommandNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands_compute

Eq BindPipelineIndirectCommandNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands_compute

FromCStruct BindPipelineIndirectCommandNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands_compute

ToCStruct BindPipelineIndirectCommandNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands_compute

Zero BindPipelineIndirectCommandNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands_compute

type NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME = "VK_NV_device_generated_commands_compute" Source #

newtype IndirectCommandsTokenTypeNV Source #

Instances

Instances details
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

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

Zero IndirectCommandsTokenTypeNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands