VkDeviceGroupRenderPassBeginInfo
If the pNext chain of VkRenderPassBeginInfo
or VkRenderingInfo
includes a VkDeviceGroupRenderPassBeginInfo structure, then that
structure includes a device mask and set of render areas for the render pass
instance.
The VkDeviceGroupRenderPassBeginInfo structure is defined as:
typedef struct VkDeviceGroupRenderPassBeginInfo {
VkStructureType sType;
const void* pNext;
uint32_t deviceMask;
uint32_t deviceRenderAreaCount;
const VkRect2D* pDeviceRenderAreas;
} VkDeviceGroupRenderPassBeginInfo;
or the equivalent
typedef VkDeviceGroupRenderPassBeginInfo VkDeviceGroupRenderPassBeginInfoKHR;
sTypeis a VkStructureType value identifying this structure.pNextisNULLor a pointer to a structure extending this structure.deviceMaskis the device mask for the render pass instance.deviceRenderAreaCountis the number of elements in thepDeviceRenderAreasarray.pDeviceRenderAreasis a pointer to an array of VkRect2D structures defining the render area for each physical device.
The deviceMask serves several purposes.
It is an upper bound on the set of physical devices that can be used during
the render pass instance, and the initial device mask when the render pass
instance begins.
In addition, commands transitioning to the next subpass in a render pass
instance and commands ending the render pass instance, and, accordingly
render pass load,
store, and multisample resolve operations and subpass dependencies corresponding to
the render pass instance, are executed on the physical devices included in
the device mask provided here.
If deviceRenderAreaCount is not zero, then the elements of
pDeviceRenderAreas override the value of
VkRenderPassBeginInfo::renderArea, and provide a render area
specific to each physical device.
These render areas serve the same purpose as
VkRenderPassBeginInfo::renderArea, including controlling the
region of attachments that are cleared by VK_ATTACHMENT_LOAD_OP_CLEAR
and that are resolved into resolve attachments.
If this structure is not present, the render pass instance’s device mask is
the value of VkDeviceGroupCommandBufferBeginInfo::deviceMask.
If this structure is not present or if deviceRenderAreaCount is zero,
VkRenderPassBeginInfo::renderArea is used for all physical
devices.
Valid Usage
VUID-VkDeviceGroupRenderPassBeginInfo-deviceMask-00905
deviceMask must be a valid device mask value
VUID-VkDeviceGroupRenderPassBeginInfo-deviceMask-00906
deviceMask must not be zero
VUID-VkDeviceGroupRenderPassBeginInfo-deviceMask-00907
deviceMask must be a subset of the command buffer’s initial
device mask
VUID-VkDeviceGroupRenderPassBeginInfo-deviceRenderAreaCount-00908
deviceRenderAreaCount must either be zero or equal to the number
of physical devices in the logical device
VUID-VkDeviceGroupRenderPassBeginInfo-offset-06166
The offset.x member of any element of pDeviceRenderAreasmust be greater than or equal to 0
VUID-VkDeviceGroupRenderPassBeginInfo-offset-06167
The offset.y member of any element of pDeviceRenderAreasmust be greater than or equal to 0
VUID-VkDeviceGroupRenderPassBeginInfo-offset-06168
The sum of the offset.x and extent.width members of any
element of pDeviceRenderAreas must be less than or equal to
maxFramebufferWidth
VUID-VkDeviceGroupRenderPassBeginInfo-offset-06169
The sum of the offset.y and extent.height members of any
element of pDeviceRenderAreas must be less than or equal to
maxFramebufferHeight
VUID-VkDeviceGroupRenderPassBeginInfo-extent-08998
The extent.width member of any element of pDeviceRenderAreasmust be greater than 0
VUID-VkDeviceGroupRenderPassBeginInfo-extent-08999
The extent.height member of any element of
pDeviceRenderAreas must be greater than 0
Valid Usage (Implicit)
VUID-VkDeviceGroupRenderPassBeginInfo-sType-sType
sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO
VUID-VkDeviceGroupRenderPassBeginInfo-pDeviceRenderAreas-parameter
If deviceRenderAreaCount is not 0, pDeviceRenderAreas must be a valid pointer to an array of deviceRenderAreaCount VkRect2D structures