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;
sType
is a VkStructureType value identifying this structure.pNext
isNULL
or a pointer to a structure extending this structure.deviceMask
is the device mask for the render pass instance.deviceRenderAreaCount
is the number of elements in thepDeviceRenderAreas
array.pDeviceRenderAreas
is 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 pDeviceRenderAreas
must be greater than or equal to 0
VUID-VkDeviceGroupRenderPassBeginInfo-offset-06167
The offset.y
member of any element of pDeviceRenderAreas
must 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 pDeviceRenderAreas
must 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