## C Specification

If the pNext list of VkImageCreateInfo includes a VkImageFormatListCreateInfo structure, then that structure contains a list of all formats that can be used when creating views of this image.

The VkImageFormatListCreateInfo structure is defined as:

typedef struct VkImageFormatListCreateInfo {
VkStructureType    sType;
const void*        pNext;
uint32_t           viewFormatCount;
const VkFormat*    pViewFormats;
} VkImageFormatListCreateInfo;

or the equivalent

typedef VkImageFormatListCreateInfo VkImageFormatListCreateInfoKHR;

## Members

• sType is the type of this structure.

• pNext is NULL or a pointer to an extension-specific structure.

• viewFormatCount is the number of entries in the pViewFormats array.

• pViewFormats is an array which lists of all formats which can be used when creating views of this image.

## Description

If viewFormatCount is zero, pViewFormats is ignored and the image is created as if the VkImageFormatListCreateInfo structure were not included in the pNext list of VkImageCreateInfo.

Valid Usage
• If viewFormatCount is not 0, all of the formats in the pViewFormats array must be compatible with the format specified in the format field of VkImageCreateInfo, as described in the compatibility table

• If VkImageCreateInfo::flags does not contain VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT, viewFormatCount must be 0 or 1

• If viewFormatCount is not 0, VkImageCreateInfo::format must be in pViewFormats

Valid Usage (Implicit)
• sType must be VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO

• If viewFormatCount is not 0, pViewFormats must be a valid pointer to an array of viewFormatCount valid VkFormat values

## Document Notes

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