# VkRenderingInfo(3) Manual Page

## Name

VkRenderingInfo - Structure specifying render pass instance begin info

Loading… please wait.

## C Specification

The `VkRenderingInfo` structure is defined as:

    // Provided by VK_VERSION_1_3
    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

    // Provided by VK_KHR_dynamic_rendering, VK_QCOM_tile_properties with VK_KHR_dynamic_rendering or VK_VERSION_1_3
    typedef VkRenderingInfo VkRenderingInfoKHR;

## Members

- `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.

## Description

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_BIT_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

  - The `VK_NV_framebuffer_mixed_samples` extension

  - The `multisampledRenderToSingleSampled` feature,

- 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.x` must 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.y` must 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_BIT_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 `pColorAttachments` must 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, `imageView` must have a width greater than or equal to ⌈ma x F r a g m e n t De n s i t y T e x e lS i z e w i d t h​re n d er A re a x​+re n d er A re a w i d t h​​⌉

- 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, `imageView` must have a height greater than or equal to ⌈ma x F r a g m e n t De n s i t y T e x e lS i z e h e i g h t​re n d er A re a y​+re n d er A re a h e i g h t​​⌉

- 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 ⌈ma x F r a g m e n t De n s i t y T e x e lS i z e w i d t h​p De v i ce R e n d er A re a s x​+p De v i ce R e n d er A re a s w i d t h​​⌉ 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 ⌈ma x F r a g m e n t De n s i t y T e x e lS i z e h e i g h t​p De v i ce R e n d er A re a s y​+p De v i ce R e n d er A re a s h e i g h t​​⌉ 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-flags-10826
  If `flags` contains `VK_RENDERING_PER_LAYER_FRAGMENT_DENSITY_BIT_VALVE`, then `layerCount` must be less than or equal to `maxFragmentDensityMapLayers`

- VUID-VkRenderingInfo-fragmentDensityMapLayered-10827
  If the `fragmentDensityMapLayered` feature is not enabled, `flags` must not contain `VK_RENDERING_PER_LAYER_FRAGMENT_DENSITY_BIT_VALVE`

- VUID-VkRenderingInfo-pNext-06119
  If the `maintenance7` feature 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, `imageView` must have a width greater than or equal to ⌈s ha d in g R a t e A tt a c hm e n tT e x e lS i z e w i d t h​re n d er A re a x​+re n d er A re a w i d t h​​⌉

- VUID-VkRenderingInfo-pNext-06121
  If the `maintenance7` feature 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, `imageView` must have a height greater than or equal to ⌈s ha d in g R a t e A tt a c hm e n tT e x e lS i z e h e i g h t​re n d er A re a y​+re n d er A re a h e i g h t​​⌉

- VUID-VkRenderingInfo-pNext-06120
  If the `maintenance7` feature 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, `imageView` must have a width greater than or equal to ⌈s ha d in g R a t e A tt a c hm e n tT e x e lS i z e w i d t h​p De v i ce R e n d er A re a s x​+p De v i ce R e n d er A re a s w i d t h​​⌉ for each element of `pDeviceRenderAreas`

- VUID-VkRenderingInfo-pNext-06122
  If the `maintenance7` feature 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, `imageView` must have a height greater than or equal to ⌈s ha d in g R a t e A tt a c hm e n tT e x e lS i z e h e i g h t​p De v i ce R e n d er A re a s y​+p De v i ce R e n d er A re a s h e i g h t​​⌉ 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 `renderArea` must 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`

  - `nestedCommandBuffer`

- VUID-VkRenderingInfo-pDepthAttachment-09318
  `pDepthAttachment->resolveMode` must not be `VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID`

- VUID-VkRenderingInfo-pStencilAttachment-09319
  `pStencilAttachment->resolveMode` must not be `VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_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_BIT_ANDROID`

- VUID-VkRenderingInfo-resolveMode-09321
  If the `resolveMode` of any element of `pColorAttachments` is `VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID`, VkRenderingFragmentDensityMapAttachmentInfoEXT::`imageView` must be VK_NULL_HANDLE

- VUID-VkRenderingInfo-resolveMode-09322
  If the `resolveMode` of any element of `pColorAttachments` is `VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID`, VkRenderingFragmentShadingRateAttachmentInfoKHR::`imageView` must 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 VkRenderPassStripeBeginInfoARM::`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_BIT_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 `pColorAttachments` must 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

- VUID-VkRenderingInfo-imageView-10643
  If the `imageView` member of a VkRenderingFragmentDensityMapAttachmentInfoEXT structure included in the `pNext` chain is not VK_NULL_HANDLE, `VK_TILE_SHADING_RENDER_PASS_ENABLE_BIT_QCOM` must not be included in VkRenderPassTileShadingCreateInfoQCOM::`flags`

- VUID-VkRenderingInfo-resolveMode-10644
  If the `resolveMode` of any element of `pColorAttachments` is `VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID`, `VK_TILE_SHADING_RENDER_PASS_ENABLE_BIT_QCOM` must not be included in VkRenderPassTileShadingCreateInfoQCOM::`flags`

Valid Usage (Implicit)

- VUID-VkRenderingInfo-sType-sType
  `sType` must be `VK_STRUCTURE_TYPE_RENDERING_INFO`

- VUID-VkRenderingInfo-pNext-pNext
  Each `pNext` member of any structure (including this one) in the `pNext` chain must be either `NULL` or a pointer to a valid instance of VkDeviceGroupRenderPassBeginInfo, VkMultisampledRenderToSingleSampledInfoEXT, VkMultiviewPerViewAttributesInfoNVX, VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM, VkRenderPassStripeBeginInfoARM, VkRenderPassTileShadingCreateInfoQCOM, VkRenderingFragmentDensityMapAttachmentInfoEXT, VkRenderingFragmentShadingRateAttachmentInfoKHR, or VkTileMemorySizeInfoQCOM

- VUID-VkRenderingInfo-sType-unique
  The `sType` value of each structure 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

## See Also

VK_KHR_dynamic_rendering, VK_QCOM_tile_properties, VK_VERSION_1_3, VkRect2D, VkRenderingAttachmentInfo, VkRenderingFlags, VkStructureType, vkCmdBeginRendering, vkCmdBeginRenderingKHR, vkGetDynamicRenderingTilePropertiesQCOM

## Document Notes

For more information, see the Vulkan Specification

This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.

## Copyright

Copyright 2014-2025 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0