Structures

VkDeviceGroupRenderPassBeginInfo

Set the initial device mask and render areas for a render pass instance

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 is NULL 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 the pDeviceRenderAreas 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-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