## C Specification

The VkDescriptorImageInfo structure is defined as:

typedef struct VkDescriptorImageInfo {
VkSampler        sampler;
VkImageView      imageView;
VkImageLayout    imageLayout;
} VkDescriptorImageInfo;

## Members

• sampler is a sampler handle, and is used in descriptor updates for types VK_DESCRIPTOR_TYPE_SAMPLER and VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER if the binding being updated does not use immutable samplers.

• imageView is an image view handle, and is used in descriptor updates for types VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, and VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT.

• imageLayout is the layout that the image subresources accessible from imageView will be in at the time this descriptor is accessed. imageLayout is used in descriptor updates for types VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, and VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT.

## Description

Members of VkDescriptorImageInfo that are not used in an update (as described above) are ignored.

Valid Usage
• imageView must not be 2D or 2D array image view created from a 3D image

• imageLayout must match the actual VkImageLayout of each subresource accessible from imageView at the time this descriptor is accessed

• If sampler is used and enables sampler Y’CBCR conversion:

• The format of the imageView must be the same as the VkFormat of the image

• The aspectMask of the imageView must be VK_IMAGE_ASPECT_COLOR_BIT

• The components.a of the imageView must be VK_COMPONENT_SWIZZLE_IDENTITY

• The components.r of the imageView must be VK_COMPONENT_SWIZZLE_IDENTITY

• The components.g of the imageView must be VK_COMPONENT_SWIZZLE_IDENTITY

• The components.b of the imageView must be VK_COMPONENT_SWIZZLE_IDENTITY

• The pNext chain of the imageView must contain a VkSamplerYcbcrConversionInfo which has a conversion which is an identically defined object to the conversion of the VkSamplerYcbcrConversionInfo which is in the pNext chain of the sampler

• If sampler is used and does not enable sampler Y’CBCR conversion and the VkFormat of the image is a multi-planar format, the image must have been created with VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT, and the aspectMask of the imageView must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT or (for three-plane formats only) VK_IMAGE_ASPECT_PLANE_2_BIT

Valid Usage (Implicit)
• Both of imageView, and sampler that are valid handles must have been created, allocated, or retrieved from the same VkDevice