Top Description Fields Constructors Methods
org.lwjgl.vulkan

public Class NVDeviceGeneratedCommandsCompute

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

This extension allows the device to generate commands for binding compute pipelines, setting push constants and launching compute dispatches.
VK_NV_device_generated_commands_compute
Name String
VK_NV_device_generated_commands_compute
Extension Type
Device extension
Registered Extension Number
429
Revision
2
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

Field Summary

Modifier and TypeField and Description
public static final int
VK_DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV

Extends VkDescriptorSetLayoutCreateFlagBits.

public static final int
VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV

Extends VkIndirectCommandsTokenTypeNV.

public static final int
VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV

Extends VkIndirectCommandsTokenTypeNV.

public static final String
public static final int
VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION

The extension specification version.

public static final int
public static final int
public static final int

Constructor Summary

AccessConstructor and Description
protected

Method Summary

Modifier and TypeMethod and Description
public static long
public static void
nvkGetPipelineIndirectMemoryRequirementsNV(VkDevice device, long pCreateInfo, long pMemoryRequirements)

Unsafe version of: GetPipelineIndirectMemoryRequirementsNV

public static void
vkCmdUpdatePipelineIndirectBufferNV(VkCommandBuffer
the command buffer into which the command will be recorded.
commandBuffer
,
int
a VkPipelineBindPoint value specifying the type of pipeline whose metadata will be saved.
pipelineBindPoint
,
long
the pipeline whose metadata will be saved.
pipeline
)

Update the indirect compute pipeline’s metadata.

public static long
vkGetPipelineIndirectDeviceAddressNV(VkDevice device, VkPipelineIndirectDeviceAddressInfoNV pInfo)

Get pipeline’s 64-bit device address.

public static void
vkGetPipelineIndirectMemoryRequirementsNV(VkDevice
the logical device that owns the buffer.
device
,
VkComputePipelineCreateInfo
a VkComputePipelineCreateInfo structure specifying the creation parameters of the compute pipeline whose memory requirements are being queried.
pCreateInfo
,
VkMemoryRequirements2
a pointer to a VkMemoryRequirements2 structure in which the requested pipeline’s memory requirements are returned.
pMemoryRequirements
)

Get the memory requirements for the compute indirect pipeline.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

VK_DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NVback to summary
public static final int VK_DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV

Extends VkDescriptorSetLayoutCreateFlagBits.

VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVback to summary
public static final int VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV

Extends VkIndirectCommandsTokenTypeNV.

Enum values:
VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVback to summary
public static final int VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV

Extends VkIndirectCommandsTokenTypeNV.

Enum values:
VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAMEback to summary
public static final String VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME

The extension name.

VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSIONback to summary
public static final int VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION

The extension specification version.

VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NVback to summary
public static final int VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV

Extends VkStructureType.

Enum values:
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NVback to summary
public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV

Extends VkStructureType.

Enum values:
VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NVback to summary
public static final int VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV

Extends VkStructureType.

Enum values:

Constructor Detail

NVDeviceGeneratedCommandsComputeback to summary
protected NVDeviceGeneratedCommandsCompute()

Method Detail

nvkGetPipelineIndirectDeviceAddressNVback to summary
public static long nvkGetPipelineIndirectDeviceAddressNV(VkDevice device, long pInfo)

Unsafe version of: GetPipelineIndirectDeviceAddressNV

nvkGetPipelineIndirectMemoryRequirementsNVback to summary
public static void nvkGetPipelineIndirectMemoryRequirementsNV(VkDevice device, long pCreateInfo, long pMemoryRequirements)

Unsafe version of: GetPipelineIndirectMemoryRequirementsNV

vkCmdUpdatePipelineIndirectBufferNVback to summary
public static void vkCmdUpdatePipelineIndirectBufferNV(VkCommandBuffer commandBuffer, int pipelineBindPoint, long pipeline)

Update the indirect compute pipeline’s metadata.

C Specification

To save a compute pipeline’s metadata at a device address call:


void vkCmdUpdatePipelineIndirectBufferNV(
    VkCommandBuffer                             commandBuffer,
    VkPipelineBindPoint                         pipelineBindPoint,
    VkPipeline                                  pipeline);
Description

vkCmdUpdatePipelineIndirectBufferNV 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)
  • commandBuffer must be a valid VkCommandBuffer handle
  • pipelineBindPoint must be a valid VkPipelineBindPoint value
  • pipeline must be a valid VkPipeline handle
  • commandBuffer must be in the recording state
  • The VkCommandPool 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 VkDevice
Host Synchronization
  • Host access to commandBuffer must be externally synchronized
  • Host access to the VkCommandPool that commandBuffer was allocated from must be externally synchronized
Command Properties
Command Buffer LevelsRender Pass ScopeVideo Coding ScopeSupported Queue TypesCommand Type
Primary SecondaryOutsideOutsideTransfer Graphics ComputeAction
Parameters
commandBuffer:VkCommandBuffer

the command buffer into which the command will be recorded.

pipelineBindPoint:int

a VkPipelineBindPoint value specifying the type of pipeline whose metadata will be saved.

pipeline:long

the pipeline whose metadata will be saved.

vkGetPipelineIndirectDeviceAddressNVback to summary
public static long vkGetPipelineIndirectDeviceAddressNV(VkDevice device, VkPipelineIndirectDeviceAddressInfoNV pInfo)

Get pipeline’s 64-bit device address.

C Specification

To query a compute pipeline’s 64-bit device address, call:


VkDeviceAddress vkGetPipelineIndirectDeviceAddressNV(
    VkDevice                                    device,
    const VkPipelineIndirectDeviceAddressInfoNV* pInfo);
Valid Usage (Implicit)
See Also

VkPipelineIndirectDeviceAddressInfoNV

Annotations
@NativeType:VkDeviceAddress
vkGetPipelineIndirectMemoryRequirementsNVback to summary
public static void vkGetPipelineIndirectMemoryRequirementsNV(VkDevice device, VkComputePipelineCreateInfo pCreateInfo, VkMemoryRequirements2 pMemoryRequirements)

Get the memory requirements for the compute indirect pipeline.

C Specification

To determine the memory requirements for a compute pipeline’s metadata, call:


void vkGetPipelineIndirectMemoryRequirementsNV(
    VkDevice                                    device,
    const VkComputePipelineCreateInfo*          pCreateInfo,
    VkMemoryRequirements2*                      pMemoryRequirements);
Description

If pCreateInfo::pNext chain includes a pointer to a VkComputePipelineIndirectBufferInfoNV structure, then the contents of that structure are ignored.

Valid Usage
Valid Usage (Implicit)
See Also

VkComputePipelineCreateInfo, VkMemoryRequirements2

Parameters
device:VkDevice

the logical device that owns the buffer.

pCreateInfo:VkComputePipelineCreateInfo

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

pMemoryRequirements:VkMemoryRequirements2

a pointer to a VkMemoryRequirements2 structure in which the requested pipeline’s memory requirements are returned.