vkCmdUpdatePipelineIndirectBufferNV
To save a compute pipeline’s metadata at a device address call:
void vkCmdUpdatePipelineIndirectBufferNV(
VkCommandBuffer commandBuffer,
VkPipelineBindPoint pipelineBindPoint,
VkPipeline pipeline);
commandBuffer
is the command buffer into which the command will be recorded.pipelineBindPoint
is a VkPipelineBindPoint value specifying the type of pipeline whose metadata will be saved.pipeline
is the pipeline whose metadata will be saved.
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
VK_PIPELINE_STAGE_2_COPY_BIT
and
VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV
and with access masks
VK_ACCESS_MEMORY_WRITE_BIT
and
VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV
respectively before using the
results in preprocessing.
Valid Usage
VUID-vkCmdUpdatePipelineIndirectBufferNV-pipelineBindPoint-09018
pipelineBindPoint
must be VK_PIPELINE_BIND_POINT_COMPUTE
VUID-vkCmdUpdatePipelineIndirectBufferNV-pipeline-09019
pipeline
must have been created with
VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV
flag set
VUID-vkCmdUpdatePipelineIndirectBufferNV-pipeline-09020
pipeline
must have been created with
VkComputePipelineIndirectBufferInfoNV structure specifying a valid
address where its metadata will be saved
Valid Usage (Implicit)
VUID-vkCmdUpdatePipelineIndirectBufferNV-commandBuffer-parameter
commandBuffer
must be a valid VkCommandBuffer handle
VUID-vkCmdUpdatePipelineIndirectBufferNV-pipelineBindPoint-parameter
pipelineBindPoint
must be a valid VkPipelineBindPoint value
VUID-vkCmdUpdatePipelineIndirectBufferNV-pipeline-parameter
pipeline
must be a valid VkPipeline handle
VUID-vkCmdUpdatePipelineIndirectBufferNV-commandBuffer-recording
commandBuffer
must be in the recording state
VUID-vkCmdUpdatePipelineIndirectBufferNV-commandBuffer-cmdpool
The VkCommandPool
that commandBuffer
was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdUpdatePipelineIndirectBufferNV-renderpass
This command must only be called outside of a render pass instance
VUID-vkCmdUpdatePipelineIndirectBufferNV-videocoding
This command must only be called outside of a video coding scope
VUID-vkCmdUpdatePipelineIndirectBufferNV-commonparent
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
thatcommandBuffer
was allocated from must be externally synchronized ::