vkCmdSetDeviceMask
To update the current device mask of a command buffer, call:
void vkCmdSetDeviceMaskKHR(
VkCommandBuffer commandBuffer,
uint32_t deviceMask);
commandBufferis command buffer whose current device mask is modified.deviceMaskis 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
commandBuffermust be externally synchronized - Host access to the
VkCommandPoolthatcommandBufferwas allocated from must be externally synchronized ::