vkCmdSetDeviceMask
To update the current device mask of a command buffer, call:
void vkCmdSetDeviceMaskKHR(
VkCommandBuffer commandBuffer,
uint32_t deviceMask);
commandBuffer
is command buffer whose current device mask is modified.deviceMask
is the new value of the current device mask.
deviceMask
is used to filter out subsequent commands from executing on
all physical devices whose bit indices are not set in the mask, except
commands beginning a render pass instance, commands transitioning to the
next subpass in the render pass instance, and commands ending a render pass
instance, which always execute on the set of physical devices whose bit
indices are included in the deviceMask
member of the
VkDeviceGroupRenderPassBeginInfo structure passed to the command
beginning the corresponding render pass instance.
Valid Usage
VUID-vkCmdSetDeviceMask-deviceMask-00108
deviceMask
must be a valid device mask value
VUID-vkCmdSetDeviceMask-deviceMask-00109
deviceMask
must not be zero
VUID-vkCmdSetDeviceMask-deviceMask-00110
deviceMask
must not include any set bits that were not in the
VkDeviceGroupCommandBufferBeginInfo::deviceMask
value when
the command buffer began recording
VUID-vkCmdSetDeviceMask-deviceMask-00111
If vkCmdSetDeviceMask
is called inside a render pass instance,
deviceMask
must not include any set bits that were not in the
VkDeviceGroupRenderPassBeginInfo::deviceMask
value when the
render pass instance began recording
Valid Usage (Implicit)
VUID-vkCmdSetDeviceMask-commandBuffer-parameter
commandBuffer
must be a valid VkCommandBuffer handle
VUID-vkCmdSetDeviceMask-commandBuffer-recording
commandBuffer
must be in the recording state
VUID-vkCmdSetDeviceMask-commandBuffer-cmdpool
The VkCommandPool
that commandBuffer
was allocated from must support graphics, compute, or transfer operations
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized - Host access to the
VkCommandPool
thatcommandBuffer
was allocated from must be externally synchronized ::