Structures

VkRenderingInfo

Structure specifying render pass instance begin info

The VkRenderingInfo structure is defined as:

typedef struct VkRenderingInfo {
    VkStructureType sType;
    const void* pNext;
    VkRenderingFlags flags;
    VkRect2D renderArea;
    uint32_t layerCount;
    uint32_t viewMask;
    uint32_t colorAttachmentCount;
    const VkRenderingAttachmentInfo* pColorAttachments;
    const VkRenderingAttachmentInfo* pDepthAttachment;
    const VkRenderingAttachmentInfo* pStencilAttachment;
} VkRenderingInfo;

or the equivalent

typedef VkRenderingInfo VkRenderingInfoKHR;
  • sType is a VkStructureType value identifying this structure.
  • pNext is NULL or a pointer to a structure extending this structure.
  • flags is a bitmask of VkRenderingFlagBits.
  • renderArea is the render area that is affected by the render pass instance.
  • layerCount is the number of layers rendered to in each attachment when viewMask is 0.
  • viewMask is the view mask indicating the indices of attachment layers that will be rendered when it is not 0.
  • colorAttachmentCount is the number of elements in pColorAttachments.
  • pColorAttachments is a pointer to an array of colorAttachmentCount VkRenderingAttachmentInfo structures describing any color attachments used.
  • pDepthAttachment is a pointer to a VkRenderingAttachmentInfo structure describing a depth attachment.
  • pStencilAttachment is a pointer to a VkRenderingAttachmentInfo structure describing a stencil attachment.

If viewMask is not 0, multiview is enabled.

If there is an instance of VkDeviceGroupRenderPassBeginInfo included in the pNext chain and its deviceRenderAreaCount member is not 0, then renderArea is ignored, and the render area is defined per-device by that structure.

If multiview is enabled, and the multiviewPerViewRenderAreas feature is enabled, and there is an instance of VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM included in the pNext chain with perViewRenderAreaCount not equal to 0, then the elements of VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM::pPerViewRenderAreas override renderArea and define a render area for each view. In this case, renderArea must be an area at least as large as the union of all the per-view render areas.

Each element of the pColorAttachments array corresponds to an output location in the shader, i.e. if the shader declares an output variable decorated with a Location value of X, then it uses the attachment provided in pColorAttachments[X]. If the imageView member of any element of pColorAttachments is VK_NULL_HANDLE, and resolveMode is not VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, writes to the corresponding location by a fragment are discarded.

Valid Usage

VUID-VkRenderingInfo-viewMask-06069

If viewMask is 0, layerCount must not be 0

VUID-VkRenderingInfo-multisampledRenderToSingleSampled-06857

imageView members of pDepthAttachment, pStencilAttachment, and elements of pColorAttachments that are not VK_NULL_HANDLE must have been created with the same sampleCount , if none of the following are enabled:- The VK_AMD_mixed_attachment_samples extension

VUID-VkRenderingInfo-imageView-09429

imageView members of elements of pColorAttachments that are not VK_NULL_HANDLE must have been created with the same sampleCount , if the multisampledRenderToSingleSampled feature is not enabled

VUID-VkRenderingInfo-None-08994

If VkDeviceGroupRenderPassBeginInfo::deviceRenderAreaCount is 0, renderArea.extent.width must be greater than 0

VUID-VkRenderingInfo-None-08995

If VkDeviceGroupRenderPassBeginInfo::deviceRenderAreaCount is 0, renderArea.extent.height must be greater than 0

VUID-VkRenderingInfo-imageView-06858

If multisampled-render-to-single-sampled is enabled, then all attachments referenced by imageView members of pDepthAttachment, pStencilAttachment, and elements of pColorAttachments that are not VK_NULL_HANDLE must have a sample count that is either VK_SAMPLE_COUNT_1_BIT or equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples

VUID-VkRenderingInfo-imageView-06859

If multisampled-render-to-single-sampled is enabled, then all attachments referenced by imageView members of pDepthAttachment, pStencilAttachment, and elements of pColorAttachments that are not VK_NULL_HANDLE and have a sample count of VK_SAMPLE_COUNT_1_BIT must have been created with VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT in their VkImageCreateInfo::flags

VUID-VkRenderingInfo-pNext-06077

If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, renderArea.offset.x must be greater than or equal to 0

VUID-VkRenderingInfo-pNext-06078

If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, renderArea.offset.y must be greater than or equal to 0

VUID-VkRenderingInfo-pNext-07815

If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, the sum of renderArea.extent.width and renderArea.offset.xmust be less than or equal to maxFramebufferWidth

VUID-VkRenderingInfo-pNext-07816

If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, the sum of renderArea.extent.height and renderArea.offset.ymust be less than or equal to maxFramebufferHeight

VUID-VkRenderingInfo-pNext-06079

If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, the width of the imageView member of any element of pColorAttachments, pDepthAttachment, or pStencilAttachment that is not VK_NULL_HANDLE must be greater than or equal to renderArea.offset.x + renderArea.extent.width

VUID-VkRenderingInfo-pNext-06080

If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, the height of the imageView member of any element of pColorAttachments, pDepthAttachment, or pStencilAttachment that is not VK_NULL_HANDLE must be greater than or equal to renderArea.offset.y + renderArea.extent.height

VUID-VkRenderingInfo-pNext-06083

If the pNext chain contains VkDeviceGroupRenderPassBeginInfo, the width of the imageView member of any element of pColorAttachments, pDepthAttachment, or pStencilAttachment that is not VK_NULL_HANDLE must be greater than or equal to the sum of the offset.x and extent.width members of each element of pDeviceRenderAreas

VUID-VkRenderingInfo-pNext-06084

If the pNext chain contains VkDeviceGroupRenderPassBeginInfo, the height of the imageView member of any element of pColorAttachments, pDepthAttachment, or pStencilAttachment that is not VK_NULL_HANDLE must be greater than or equal to the sum of the offset.y and extent.height members of each element of pDeviceRenderAreas

VUID-VkRenderingInfo-pDepthAttachment-06085

If neither pDepthAttachment or pStencilAttachment are NULL and the imageView member of either structure is not VK_NULL_HANDLE, the imageView member of each structure must be the same

VUID-VkRenderingInfo-pDepthAttachment-06086

If neither pDepthAttachment or pStencilAttachment are NULL, and the resolveMode member of each is not VK_RESOLVE_MODE_NONE, the resolveImageView member of each structure must be the same

VUID-VkRenderingInfo-colorAttachmentCount-06087

If colorAttachmentCount is not 0 and the imageView member of an element of pColorAttachments is not VK_NULL_HANDLE, that imageView must have been created with VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT

VUID-VkRenderingInfo-colorAttachmentCount-09476

If colorAttachmentCount is not 0 and there is an element of pColorAttachments with either its resolveMode member set to VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, or its imageView member not VK_NULL_HANDLE, and its resolveMode member not set to VK_RESOLVE_MODE_NONE, the resolveImageView member of that element of pColorAttachmentsmust have been created with VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT

VUID-VkRenderingInfo-pDepthAttachment-06547

If pDepthAttachment is not NULL and pDepthAttachment→imageView is not VK_NULL_HANDLE, pDepthAttachment→imageView must have been created with a format that includes a depth component

VUID-VkRenderingInfo-pDepthAttachment-06088

If pDepthAttachment is not NULL and pDepthAttachment→imageView is not VK_NULL_HANDLE, pDepthAttachment→imageView must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT

VUID-VkRenderingInfo-pDepthAttachment-09477

If pDepthAttachment is not NULL and pDepthAttachment→resolveMode is not VK_RESOLVE_MODE_NONE, pDepthAttachment→resolveImageView must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT

VUID-VkRenderingInfo-pStencilAttachment-06548

If pStencilAttachment is not NULL and pStencilAttachment→imageView is not VK_NULL_HANDLE, pStencilAttachment→imageView must have been created with a format that includes a stencil aspect

VUID-VkRenderingInfo-pStencilAttachment-06089

If pStencilAttachment is not NULL and pStencilAttachment→imageView is not VK_NULL_HANDLE, pStencilAttachment→imageView must have been created with a stencil usage including VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT

VUID-VkRenderingInfo-pStencilAttachment-09478

If pStencilAttachment is not NULL and pStencilAttachment→resolveMode is not VK_RESOLVE_MODE_NONE, pStencilAttachment→resolveImageView must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT

VUID-VkRenderingInfo-colorAttachmentCount-06090

If colorAttachmentCount is not 0 and the imageView member of an element of pColorAttachments is not VK_NULL_HANDLE, the layout member of that element of pColorAttachments must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL

VUID-VkRenderingInfo-colorAttachmentCount-06091

If colorAttachmentCount is not 0 and the imageView member of an element of pColorAttachments is not VK_NULL_HANDLE, if the resolveMode member of that element of pColorAttachments is not VK_RESOLVE_MODE_NONE, its resolveImageLayout member must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL

VUID-VkRenderingInfo-pDepthAttachment-06092

If pDepthAttachment is not NULL and pDepthAttachment→imageView is not VK_NULL_HANDLE, pDepthAttachment→layout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL

VUID-VkRenderingInfo-pDepthAttachment-06093

If pDepthAttachment is not NULL, pDepthAttachment→imageView is not VK_NULL_HANDLE, and pDepthAttachment→resolveMode is not VK_RESOLVE_MODE_NONE, pDepthAttachment→resolveImageLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL

VUID-VkRenderingInfo-pStencilAttachment-06094

If pStencilAttachment is not NULL and pStencilAttachment→imageView is not VK_NULL_HANDLE, pStencilAttachment→layout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL

VUID-VkRenderingInfo-pStencilAttachment-06095

If pStencilAttachment is not NULL, pStencilAttachment→imageView is not VK_NULL_HANDLE, and pStencilAttachment→resolveMode is not VK_RESOLVE_MODE_NONE, pStencilAttachment→resolveImageLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL

VUID-VkRenderingInfo-colorAttachmentCount-06096

If colorAttachmentCount is not 0 and the imageView member of an element of pColorAttachments is not VK_NULL_HANDLE, the layout member of that element of pColorAttachments must not be VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL

VUID-VkRenderingInfo-colorAttachmentCount-06097

If colorAttachmentCount is not 0 and the imageView member of an element of pColorAttachments is not VK_NULL_HANDLE, if the resolveMode member of that element of pColorAttachments is not VK_RESOLVE_MODE_NONE, its resolveImageLayout member must not be VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL

VUID-VkRenderingInfo-pDepthAttachment-06098

If pDepthAttachment is not NULL, pDepthAttachment→imageView is not VK_NULL_HANDLE, and pDepthAttachment→resolveMode is not VK_RESOLVE_MODE_NONE, pDepthAttachment→resolveImageLayout must not be VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL

VUID-VkRenderingInfo-pStencilAttachment-06099

If pStencilAttachment is not NULL, pStencilAttachment→imageView is not VK_NULL_HANDLE, and pStencilAttachment→resolveMode is not VK_RESOLVE_MODE_NONE, pStencilAttachment→resolveImageLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL

VUID-VkRenderingInfo-colorAttachmentCount-06100

If colorAttachmentCount is not 0 and the imageView member of an element of pColorAttachments is not VK_NULL_HANDLE, the layout member of that element of pColorAttachments must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL

VUID-VkRenderingInfo-colorAttachmentCount-06101

If colorAttachmentCount is not 0 and the imageView member of an element of pColorAttachments is not VK_NULL_HANDLE, if the resolveMode member of that element of pColorAttachments is not VK_RESOLVE_MODE_NONE, its resolveImageLayout member must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL

VUID-VkRenderingInfo-pDepthAttachment-07732

If pDepthAttachment is not NULL and pDepthAttachment→imageView is not VK_NULL_HANDLE, pDepthAttachment→layout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL

VUID-VkRenderingInfo-pDepthAttachment-07733

If pDepthAttachment is not NULL, pDepthAttachment→imageView is not VK_NULL_HANDLE, and pDepthAttachment→resolveMode is not VK_RESOLVE_MODE_NONE, pDepthAttachment→resolveImageLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL

VUID-VkRenderingInfo-pStencilAttachment-07734

If pStencilAttachment is not NULL and pStencilAttachment→imageView is not VK_NULL_HANDLE, pStencilAttachment→layout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL

VUID-VkRenderingInfo-pStencilAttachment-07735

If pStencilAttachment is not NULL, pStencilAttachment→imageView is not VK_NULL_HANDLE, and pStencilAttachment→resolveMode is not VK_RESOLVE_MODE_NONE, pStencilAttachment→resolveImageLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL

VUID-VkRenderingInfo-pDepthAttachment-06102

If pDepthAttachment is not NULL and pDepthAttachment→imageView is not VK_NULL_HANDLE, pDepthAttachment→resolveMode must be one of the bits set in VkPhysicalDeviceDepthStencilResolveProperties::supportedDepthResolveModes

VUID-VkRenderingInfo-pStencilAttachment-06103

If pStencilAttachment is not NULL and pStencilAttachment→imageView is not VK_NULL_HANDLE, pStencilAttachment→resolveMode must be one of the bits set in VkPhysicalDeviceDepthStencilResolveProperties::supportedStencilResolveModes

VUID-VkRenderingInfo-pDepthAttachment-06104

If pDepthAttachment or pStencilAttachment are both not NULL, pDepthAttachment→imageView and pStencilAttachment→imageView are both not VK_NULL_HANDLE, and VkPhysicalDeviceDepthStencilResolveProperties::independentResolveNone is VK_FALSE, the resolveMode of both structures must be the same value

VUID-VkRenderingInfo-pDepthAttachment-06105

If pDepthAttachment or pStencilAttachment are both not NULL, pDepthAttachment→imageView and pStencilAttachment→imageView are both not VK_NULL_HANDLE, VkPhysicalDeviceDepthStencilResolveProperties::independentResolve is VK_FALSE, and the resolveMode of neither structure is VK_RESOLVE_MODE_NONE, the resolveMode of both structures must be the same value

VUID-VkRenderingInfo-colorAttachmentCount-06106

colorAttachmentCount must be less than or equal to VkPhysicalDeviceLimits::maxColorAttachments

VUID-VkRenderingInfo-imageView-06107

If the imageView member of a VkRenderingFragmentDensityMapAttachmentInfoEXT structure included in the pNext chain is not VK_NULL_HANDLE, and the fragmentDensityMapNonSubsampledImages feature is not enabled, valid imageView and resolveImageView members of pDepthAttachment, pStencilAttachment, and each element of pColorAttachments must be a VkImageView created with VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT

VUID-VkRenderingInfo-imageView-06108

If the imageView member of a VkRenderingFragmentDensityMapAttachmentInfoEXT structure included in the pNext chain is not VK_NULL_HANDLE, and viewMask is not 0, imageView must have a layerCount greater than or equal to the index of the most significant bit in viewMask

VUID-VkRenderingInfo-imageView-06109

If the imageView member of a VkRenderingFragmentDensityMapAttachmentInfoEXT structure included in the pNext chain is not VK_NULL_HANDLE, and viewMask is 0, imageView must have a layerCount equal to 1

VUID-VkRenderingInfo-pNext-06112

If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0 and the imageView member of a VkRenderingFragmentDensityMapAttachmentInfoEXT structure included in the pNext chain is not VK_NULL_HANDLE, imageViewmust have a width greater than or equal to renderArea_x+renderArea_widthmaxFragmentDensityTexelSize_width\left\lceil{\frac{renderArea\_{x}+renderArea\_{width}}{maxFragmentDensityTexelSize\_{width}}}\right\rceil

VUID-VkRenderingInfo-pNext-06114

If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0 and the imageView member of a VkRenderingFragmentDensityMapAttachmentInfoEXT structure included in the pNext chain is not VK_NULL_HANDLE, imageViewmust have a height greater than or equal to renderArea_y+renderArea_heightmaxFragmentDensityTexelSize_height\left\lceil{\frac{renderArea\_{y}+renderArea\_{height}}{maxFragmentDensityTexelSize\_{height}}}\right\rceil

VUID-VkRenderingInfo-pNext-06113

If the pNext chain contains a VkDeviceGroupRenderPassBeginInfo structure, its deviceRenderAreaCount member is not 0, and the imageView member of a VkRenderingFragmentDensityMapAttachmentInfoEXT structure included in the pNext chain is not VK_NULL_HANDLE, imageView must have a width greater than or equal to pDeviceRenderAreas_x+pDeviceRenderAreas_widthmaxFragmentDensityTexelSize_width\left\lceil{\frac{pDeviceRenderAreas\_{x}+pDeviceRenderAreas\_{width}}{maxFragmentDensityTexelSize\_{width}}}\right\rceil for each element of pDeviceRenderAreas

VUID-VkRenderingInfo-pNext-06115

If the pNext chain contains a VkDeviceGroupRenderPassBeginInfo structure, its deviceRenderAreaCount member is not 0, and the imageView member of a VkRenderingFragmentDensityMapAttachmentInfoEXT structure included in the pNext chain is not VK_NULL_HANDLE, imageView must have a height greater than or equal to pDeviceRenderAreas_y+pDeviceRenderAreas_heightmaxFragmentDensityTexelSize_height\left\lceil{\frac{pDeviceRenderAreas\_{y}+pDeviceRenderAreas\_{height}}{maxFragmentDensityTexelSize\_{height}}}\right\rceil for each element of pDeviceRenderAreas

VUID-VkRenderingInfo-imageView-06116

If the imageView member of a VkRenderingFragmentDensityMapAttachmentInfoEXT structure included in the pNext chain is not VK_NULL_HANDLE, it must not be equal to the imageView or resolveImageView member of pDepthAttachment, pStencilAttachment, or any element of pColorAttachments

VUID-VkRenderingInfo-pNext-06119

If maintenance7 is not enabled or the robustFragmentShadingRateAttachmentAccess limit is VK_FALSE or the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure was created with VkImageSubresourceRange::baseMipLevel greater than 0, the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, and the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure included in the pNext chain is not VK_NULL_HANDLE, imageViewmust have a width greater than or equal to renderArea_x+renderArea_widthshadingRateAttachmentTexelSize_width\left\lceil{\frac{renderArea\_{x}+renderArea\_{width}}{shadingRateAttachmentTexelSize\_{width}}}\right\rceil

VUID-VkRenderingInfo-pNext-06121

If maintenance7 is not enabled or the robustFragmentShadingRateAttachmentAccess limit is VK_FALSE or the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure was created with VkImageSubresourceRange::baseMipLevel greater than 0, the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0 and the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure included in the pNext chain is not VK_NULL_HANDLE, imageViewmust have a height greater than or equal to renderArea_y+renderArea_heightshadingRateAttachmentTexelSize_height\left\lceil{\frac{renderArea\_{y}+renderArea\_{height}}{shadingRateAttachmentTexelSize\_{height}}}\right\rceil

VUID-VkRenderingInfo-pNext-06120

If maintenance7 is not enabled or the robustFragmentShadingRateAttachmentAccess limit is VK_FALSE or the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure was created with VkImageSubresourceRange::baseMipLevel greater than 0, the pNext chain contains a VkDeviceGroupRenderPassBeginInfo structure, its deviceRenderAreaCount member is not 0, and the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure included in the pNext chain is not VK_NULL_HANDLE, imageViewmust have a width greater than or equal to pDeviceRenderAreas_x+pDeviceRenderAreas_widthshadingRateAttachmentTexelSize_width\left\lceil{\frac{pDeviceRenderAreas\_{x}+pDeviceRenderAreas\_{width}}{shadingRateAttachmentTexelSize\_{width}}}\right\rceil for each element of pDeviceRenderAreas

VUID-VkRenderingInfo-pNext-06122

If maintenance7 is not enabled or the robustFragmentShadingRateAttachmentAccess limit is VK_FALSE or the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure was created with VkImageSubresourceRange::baseMipLevel greater than 0, the pNext chain contains a VkDeviceGroupRenderPassBeginInfo structure, its deviceRenderAreaCount member is not 0, and the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure included in the pNext chain is not VK_NULL_HANDLE, imageViewmust have a height greater than or equal to pDeviceRenderAreas_y+pDeviceRenderAreas_heightshadingRateAttachmentTexelSize_height\left\lceil{\frac{pDeviceRenderAreas\_{y}+pDeviceRenderAreas\_{height}}{shadingRateAttachmentTexelSize\_{height}}}\right\rceil for each element of pDeviceRenderAreas

VUID-VkRenderingInfo-layerCount-07817

layerCount must be less than or equal to maxFramebufferLayers

VUID-VkRenderingInfo-imageView-06123

If the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure included in the pNext chain is not VK_NULL_HANDLE, and viewMask is 0, imageView must have a layerCount that is either equal to 1 or greater than or equal to layerCount

VUID-VkRenderingInfo-imageView-06124

If the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure included in the pNext chain is not VK_NULL_HANDLE, and viewMask is not 0, imageView must have a layerCount that either equal to 1 or greater than or equal to the index of the most significant bit in viewMask

VUID-VkRenderingInfo-imageView-06125

If the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure included in the pNext chain is not VK_NULL_HANDLE, it must not be equal to the imageView or resolveImageView member of pDepthAttachment, pStencilAttachment, or any element of pColorAttachments

VUID-VkRenderingInfo-imageView-06126

If the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure included in the pNext chain is not VK_NULL_HANDLE, it must not be equal to the imageView member of a VkRenderingFragmentDensityMapAttachmentInfoEXT structure included in the pNext chain

VUID-VkRenderingInfo-multiview-06127

If the multiview feature is not enabled, viewMask must be 0

VUID-VkRenderingInfo-viewMask-06128

The index of the most significant bit in viewMask must be less than maxMultiviewViewCount

VUID-VkRenderingInfo-perViewRenderAreaCount-07857

If the perViewRenderAreaCount member of a VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM structure included in the pNext chain is not 0, then the multiviewPerViewRenderAreas feature must be enabled

VUID-VkRenderingInfo-perViewRenderAreaCount-07858

If the perViewRenderAreaCount member of a VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM structure included in the pNext chain is not 0, then renderAreamust specify a render area that includes the union of all per view render areas

VUID-VkRenderingInfo-None-09044

Valid attachments specified by this structure must not be bound to memory locations that are bound to any other valid attachments specified by this structure

VUID-VkRenderingInfo-flags-10012

If flags includes VK_RENDERING_CONTENTS_INLINE_BIT_KHR then at least one of the following features must be enabled- maintenance7

VUID-VkRenderingInfo-pDepthAttachment-09318

pDepthAttachment→resolveMode must not be VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID

VUID-VkRenderingInfo-pStencilAttachment-09319

pStencilAttachment→resolveMode must not be VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID

VUID-VkRenderingInfo-colorAttachmentCount-09320

If colorAttachmentCount is not 1, the resolveMode member of any element of pColorAttachments must not be VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID

VUID-VkRenderingInfo-resolveMode-09321

If the resolveMode of any element of pColorAttachments is VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, VkRenderingFragmentDensityMapAttachmentInfoEXT::imageViewmust be VK_NULL_HANDLE

VUID-VkRenderingInfo-resolveMode-09322

If the resolveMode of any element of pColorAttachments is VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, VkRenderingFragmentShadingRateAttachmentInfoKHR::imageViewmust be VK_NULL_HANDLE

VUID-VkRenderingInfo-pNext-09535

If the pNext chain contains a VkRenderPassStripeBeginInfoARM structure, the union of stripe areas defined by the elements of VkRenderPassStripeInfoARM::pStripeInfos must cover the renderArea

VUID-VkRenderingInfo-colorAttachmentCount-09479

If colorAttachmentCount is not 0 and the imageView member of an element of pColorAttachments is not VK_NULL_HANDLE, that imageView must have been created with the identity swizzle

VUID-VkRenderingInfo-colorAttachmentCount-09480

If colorAttachmentCount is not 0, and there is an element of pColorAttachments with either its resolveMode member set to VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, or its imageView member not set to VK_NULL_HANDLE and its resolveMode member not set to VK_RESOLVE_MODE_NONE, the resolveImageView member of that element of pColorAttachmentsmust have been created with the identity swizzle

VUID-VkRenderingInfo-pDepthAttachment-09481

If pDepthAttachment is not NULL and pDepthAttachment→imageView is not VK_NULL_HANDLE, pDepthAttachment→imageView must have been created with the identity swizzle

VUID-VkRenderingInfo-pDepthAttachment-09482

If pDepthAttachment is not NULL, pDepthAttachment→imageView is not VK_NULL_HANDLE, and pDepthAttachment→resolveMode is not VK_RESOLVE_MODE_NONE, pDepthAttachment→resolveImageView must have been created with the identity swizzle

VUID-VkRenderingInfo-pStencilAttachment-09483

If pStencilAttachment is not NULL and pStencilAttachment→imageView is not VK_NULL_HANDLE, pStencilAttachment→imageView must have been created with the identity swizzle

VUID-VkRenderingInfo-pStencilAttachment-09484

If pStencilAttachment is not NULL, pStencilAttachment→imageView is not VK_NULL_HANDLE, and pStencilAttachment→resolveMode is not VK_RESOLVE_MODE_NONE, pStencilAttachment→resolveImageView must have been created with the identity swizzle

VUID-VkRenderingInfo-imageView-09485

If the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure included in the pNext chain is not VK_NULL_HANDLE, it must have been created with the identity swizzle

VUID-VkRenderingInfo-imageView-09486

If the imageView member of a VkRenderingFragmentDensityMapAttachmentInfoEXT structure included in the pNext chain is not VK_NULL_HANDLE, it must have been created with the identity swizzle

Valid Usage (Implicit)

VUID-VkRenderingInfo-sType-sType

sType must be VK_STRUCTURE_TYPE_RENDERING_INFO

VUID-VkRenderingInfo-sType-unique

The sType value of each struct in the pNext chain must be unique

VUID-VkRenderingInfo-flags-parameter

flags must be a valid combination of VkRenderingFlagBits values

VUID-VkRenderingInfo-pColorAttachments-parameter

If colorAttachmentCount is not 0, pColorAttachments must be a valid pointer to an array of colorAttachmentCount valid VkRenderingAttachmentInfo structures

VUID-VkRenderingInfo-pDepthAttachment-parameter

If pDepthAttachment is not NULL, pDepthAttachment must be a valid pointer to a valid VkRenderingAttachmentInfo structure

VUID-VkRenderingInfo-pStencilAttachment-parameter

If pStencilAttachment is not NULL, pStencilAttachment must be a valid pointer to a valid VkRenderingAttachmentInfo structure