vulkan
Safe HaskellNone
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

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

cmdUpdatePipelineIndirectBufferNV Source #

Arguments

:: 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 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 LevelsRender Pass ScopeVideo Coding ScopeSupported Queue TypesCommand Type
Primary Secondary Outside Outside VK_QUEUE_COMPUTE_BIT VK_QUEUE_GRAPHICS_BIT VK_QUEUE_TRANSFER_BITAction

Conditional Rendering

vkCmdUpdatePipelineIndirectBufferNV is not affected by conditional rendering

See Also

VK_NV_device_generated_commands_compute, CommandBuffer, Pipeline, PipelineBindPoint

getPipelineIndirectMemoryRequirementsNV Source #

Arguments

:: forall (a :: [Type]) (b :: [Type]) 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

:: MonadIO io 
=> Device

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

-> PipelineIndirectDeviceAddressInfoNV

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

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

data ComputePipelineIndirectBufferInfoNV Source #

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

See Also

VK_NV_device_generated_commands_compute, DeviceAddress, DeviceSize, StructureType

Constructors

ComputePipelineIndirectBufferInfoNV 

Fields

Instances

Instances details
Eq ComputePipelineIndirectBufferInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands_compute

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

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

Valid Usage (Implicit)

See Also

VK_NV_device_generated_commands_compute, Bool32, StructureType

Constructors

PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV 

Fields

Instances

Instances details
Eq PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands_compute

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

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
Eq PipelineIndirectDeviceAddressInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands_compute

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

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

Valid Usage (Implicit)

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
Eq BindPipelineIndirectCommandNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands_compute

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

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