vkCmdUpdatePipelineIndirectBufferNV
To save a compute pipeline’s metadata at a device address call:
void vkCmdUpdatePipelineIndirectBufferNV(
VkCommandBuffer commandBuffer,
VkPipelineBindPoint pipelineBindPoint,
VkPipeline pipeline);
pub fn cmd_update_pipeline_indirect_buffer_nv(
command_buffer: vk::CommandBuffer,
pipeline_bind_point: vk::PipelineBindPoint,
pipeline: vk::Pipeline,
);
commandBufferis the command buffer into which the command will be recorded.pipelineBindPointis a VkPipelineBindPoint value specifying the type of pipeline whose metadata will be saved.pipelineis 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 VK_QUEUE_COMPUTE_BIT, VK_QUEUE_GRAPHICS_BIT, or VK_QUEUE_TRANSFER_BIT operations
VUID-vkCmdUpdatePipelineIndirectBufferNV-renderpass
This command must only be called outside of a render pass instance
VUID-vkCmdUpdatePipelineIndirectBufferNV-suspended
This command must not be called between suspended render pass instances
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
commandBuffermust be externally synchronized - Host access to the
VkCommandPoolthatcommandBufferwas allocated from must be externally synchronized