VkDeviceGroupPresentInfoKHR
If the pNext chain of VkPresentInfoKHR includes a
VkDeviceGroupPresentInfoKHR structure, then that structure includes an
array of device masks and a device group present mode.
The VkDeviceGroupPresentInfoKHR structure is defined as:
typedef struct VkDeviceGroupPresentInfoKHR {
VkStructureType sType;
const void* pNext;
uint32_t swapchainCount;
const uint32_t* pDeviceMasks;
VkDeviceGroupPresentModeFlagBitsKHR mode;
} VkDeviceGroupPresentInfoKHR;
sTypeis a VkStructureType value identifying this structure.pNextisNULLor a pointer to a structure extending this structure.swapchainCountis zero or the number of elements inpDeviceMasks.pDeviceMasksis a pointer to an array of device masks, one for each element of VkPresentInfoKHR::pSwapchains.modeis a VkDeviceGroupPresentModeFlagBitsKHR value specifying the device group present mode that will be used for this present.
If mode is VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR, then each
element of pDeviceMasks selects which instance of the swapchain image
is presented.
Each element of pDeviceMasks must have exactly one bit set, and the
corresponding physical device must have a presentation engine as reported
by VkDeviceGroupPresentCapabilitiesKHR.
If mode is VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR, then
each element of pDeviceMasks selects which instance of the swapchain
image is presented.
Each element of pDeviceMasks must have exactly one bit set, and some
physical device in the logical device must include that bit in its
VkDeviceGroupPresentCapabilitiesKHR::presentMask.
If mode is VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR, then each
element of pDeviceMasks selects which instances of the swapchain image
are component-wise summed and the sum of those images is presented.
If the sum in any component is outside the representable range, the value of
that component is undefined:.
Each element of pDeviceMasks must have a value for which all set bits
are set in one of the elements of
VkDeviceGroupPresentCapabilitiesKHR::presentMask.
If mode is
VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR, then each
element of pDeviceMasks selects which instance(s) of the swapchain
images are presented.
For each bit set in each element of pDeviceMasks, the corresponding
physical device must have a presentation engine as reported by
VkDeviceGroupPresentCapabilitiesKHR.
If VkDeviceGroupPresentInfoKHR is not provided or swapchainCount
is zero then the masks are considered to be 1.
If VkDeviceGroupPresentInfoKHR is not provided, mode is
considered to be VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR.
Valid Usage
VUID-VkDeviceGroupPresentInfoKHR-swapchainCount-01297
swapchainCount must equal 0 or
VkPresentInfoKHR::swapchainCount
VUID-VkDeviceGroupPresentInfoKHR-mode-01298
If mode is VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR, then
each element of pDeviceMasks must have exactly one bit set, and
the corresponding element of
VkDeviceGroupPresentCapabilitiesKHR::presentMask must be
non-zero
VUID-VkDeviceGroupPresentInfoKHR-mode-01299
If mode is VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR, then
each element of pDeviceMasks must have exactly one bit set, and
some physical device in the logical device must include that bit in its
VkDeviceGroupPresentCapabilitiesKHR::presentMask
VUID-VkDeviceGroupPresentInfoKHR-mode-01300
If mode is VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR, then
each element of pDeviceMasks must have a value for which all set
bits are set in one of the elements of
VkDeviceGroupPresentCapabilitiesKHR::presentMask
VUID-VkDeviceGroupPresentInfoKHR-mode-01301
If mode is
VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR, then for
each bit set in each element of pDeviceMasks, the corresponding
element of VkDeviceGroupPresentCapabilitiesKHR::presentMaskmust be non-zero
VUID-VkDeviceGroupPresentInfoKHR-pDeviceMasks-01302
The value of each element of pDeviceMasks must be equal to the
device mask passed in VkAcquireNextImageInfoKHR::deviceMask
when the image index was last acquired
VUID-VkDeviceGroupPresentInfoKHR-mode-01303
mode must have exactly one bit set, and that bit must have been
included in VkDeviceGroupSwapchainCreateInfoKHR::modes
Valid Usage (Implicit)
VUID-VkDeviceGroupPresentInfoKHR-sType-sType
sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR
VUID-VkDeviceGroupPresentInfoKHR-pDeviceMasks-parameter
If swapchainCount is not 0, pDeviceMasks must be a valid pointer to an array of swapchainCount uint32_t values
VUID-VkDeviceGroupPresentInfoKHR-mode-parameter
mode must be a valid VkDeviceGroupPresentModeFlagBitsKHR value