vkCmdDispatchDataGraphARM
To record a data graph pipeline dispatch, call:
void vkCmdDispatchDataGraphARM(
VkCommandBuffer commandBuffer,
VkDataGraphPipelineSessionARM session,
const VkDataGraphPipelineDispatchInfoARM* pInfo);
pub fn cmd_dispatch_data_graph_arm(
command_buffer: vk::CommandBuffer,
session: vk::DataGraphPipelineSessionARM,
p_info: *const vk::DataGraphPipelineDispatchInfoARM,
);
commandBufferis the command buffer into which the command will be recorded.sessionis the VkDataGraphPipelineSessionARM that data graph pipeline being dispatched will use.pInfoisNULLor a pointer to a VkDataGraphPipelineDispatchInfoARM structure.
Valid Usage
VUID-vkCmdDispatchDataGraphARM-session-09796
For each of the session bind point requirements returned by
vkGetDataGraphPipelineSessionBindPointRequirementsARM for
session,
VkDataGraphPipelineSessionBindPointRequirementARM::numObjects
objects must have been bound to session
VUID-vkCmdDispatchDataGraphARM-dataGraphPipeline-09951
The VkPipeline bound to the pipeline bind point used by this
command must be identical to the dataGraphPipeline used to create
session
VUID-vkCmdDispatchDataGraphARM-None-09797
For each set n that is statically used by a bound data graph pipeline, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility
VUID-vkCmdDispatchDataGraphARM-None-09935
Descriptors in each bound descriptor set, specified via
vkCmdBindDescriptorSets, must be valid as described by
descriptor validity if they are statically used
by
the VkPipeline bound to the pipeline bind point used by this
command and the bound VkPipeline was not created with
VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDispatchDataGraphARM-None-09936
If the descriptors used by the VkPipeline bound to the pipeline
bind point were specified via vkCmdBindDescriptorSets, the bound
VkPipeline must have been created without
VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDispatchDataGraphARM-None-09937
Descriptors in bound descriptor buffers, specified via
vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are
dynamically used by the VkPipeline bound to the pipeline bind
point used by this command and the bound VkPipeline was created
with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDispatchDataGraphARM-None-09938
If the descriptors used by the VkPipeline bound to the pipeline
bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT,
the bound VkPipeline must have been created with
VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDispatchDataGraphARM-None-09939
If a descriptor is dynamically used with a VkPipeline created with
VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor
memory must be resident
VUID-vkCmdDispatchDataGraphARM-None-09799
A valid data graph pipeline must be bound to the
VK_PIPELINE_BIND_POINT_DATA_GRAPH_ARM pipeline bind point used by
this command
VUID-vkCmdDispatchDataGraphARM-pDescription-09930
If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a
result of this command, then the underlying VkTensorARM object
must have been created with a
VkTensorCreateInfoARM::pDescription whose usage member
contained VK_TENSOR_USAGE_DATA_GRAPH_BIT_ARM
VUID-vkCmdDispatchDataGraphARM-pipeline-09940
If the VkPipeline bound to the pipeline bind point used by this
command was created with a
VkDataGraphProcessingEngineCreateInfoARM structure in the
pNext chain of VkDataGraphPipelineCreateInfoARM that
included a foreign data graph processing engine in its
pProcessingEngines member, then all
VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptors accessed as a result of
this command must be VkTensorARM objects that have been bound to
memory allocated with
VkExportMemoryAllocateInfo::handleTypes with set bits that
are a subset of the bits in
VkQueueFamilyDataGraphProcessingEnginePropertiesARM::foreignMemoryHandleTypes
structure queried via
vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM
with a queueFamilyIndex matching the one the command pool used to
create commandBuffer was created for and an identical
engineType, for all the foreign data graph processing engines that
were part of the VkDataGraphProcessingEngineCreateInfoARM used to
create the VkPipeline
VUID-vkCmdDispatchDataGraphARM-pNext-09952
If the VkPipeline bound to the pipeline bind point used by this
command was created with a
VkDataGraphProcessingEngineCreateInfoARM structure in the
pNext chain of VkDataGraphPipelineCreateInfoARM that
included a foreign data graph processing engine in its
pProcessingEngines member, then all session bound memory
must have been allocated with
VkExportMemoryAllocateInfo::handleTypes with set bits that
are a subset of the bits in
VkQueueFamilyDataGraphProcessingEnginePropertiesARM::foreignMemoryHandleTypes
structure queried via
vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM
with a queueFamilyIndex matching the one the command pool used to
create commandBuffer was created for and an identical
engineType, for all the foreign data graph processing engines that
were part of the VkDataGraphProcessingEngineCreateInfoARM used to
create the VkPipeline
VUID-vkCmdDispatchDataGraphARM-commandBuffer-09800
If commandBuffer is an unprotected command buffer and
protectedNoFault is not supported,
any resource accessed by bound data graph pipelines must not be a
protected resource
VUID-vkCmdDispatchDataGraphARM-commandBuffer-09801
If commandBuffer is a protected command buffer and
protectedNoFault is not supported,
any resource written to by the VkPipeline object bound to the bind
point used by this command must not be an unprotected resource
VUID-vkCmdDispatchDataGraphARM-commandBuffer-09941
All the operations used by the bound data graph pipeline must be
supported on the queue family for which the command pool out of which
commandBuffer was allocated, as reported by
vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM
Valid Usage (Implicit)
VUID-vkCmdDispatchDataGraphARM-commandBuffer-parameter
commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDispatchDataGraphARM-session-parameter
session must be a valid VkDataGraphPipelineSessionARM handle
VUID-vkCmdDispatchDataGraphARM-pInfo-parameter
If pInfo is not NULL, pInfo must be a valid pointer to a valid VkDataGraphPipelineDispatchInfoARM structure
VUID-vkCmdDispatchDataGraphARM-commandBuffer-recording
commandBuffer must be in the recording state
VUID-vkCmdDispatchDataGraphARM-commandBuffer-cmdpool
The VkCommandPool that commandBuffer was allocated from must support VK_QUEUE_DATA_GRAPH_BIT_ARM operations
VUID-vkCmdDispatchDataGraphARM-renderpass
This command must only be called outside of a render pass instance
VUID-vkCmdDispatchDataGraphARM-suspended
This command must not be called between suspended render pass instances
VUID-vkCmdDispatchDataGraphARM-videocoding
This command must only be called outside of a video coding scope
VUID-vkCmdDispatchDataGraphARM-commonparent
Both of commandBuffer, and session 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