# VkImageFormatListCreateInfo(3) Manual Page

## Name

VkImageFormatListCreateInfo - Specify that an image can: be used with a particular set of formats

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

## See Also

VkFormat, VkStructureType

## 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 (c) 2014-2020 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.