C Specification
The VkImageCreateInfo structure is defined as:
// Provided by VK_VERSION_1_0
typedef struct VkImageCreateInfo {
    VkStructureType          sType;
    const void*              pNext;
    VkImageCreateFlags       flags;
    VkImageType              imageType;
    VkFormat                 format;
    VkExtent3D               extent;
    uint32_t                 mipLevels;
    uint32_t                 arrayLayers;
    VkSampleCountFlagBits    samples;
    VkImageTiling            tiling;
    VkImageUsageFlags        usage;
    VkSharingMode            sharingMode;
    uint32_t                 queueFamilyIndexCount;
    const uint32_t*          pQueueFamilyIndices;
    VkImageLayout            initialLayout;
} VkImageCreateInfo;Members
- 
sTypeis a VkStructureType value identifying this structure.
- 
pNextisNULLor a pointer to a structure extending this structure.
- 
flagsis a bitmask of VkImageCreateFlagBits describing additional parameters of the image.
- 
imageTypeis a VkImageType value specifying the basic dimensionality of the image. Layers in array textures do not count as a dimension for the purposes of the image type.
- 
formatis a VkFormat describing the format and type of the texel blocks that will be contained in the image.
- 
extentis a VkExtent3D describing the number of texels/pixels in each dimension of the base level.
- 
mipLevelsdescribes the number of levels of detail available for minified sampling of the image.
- 
arrayLayersis the number of layers in the image.
- 
samplesis a VkSampleCountFlagBits value specifying the number of samples per texel.
- 
tilingis a VkImageTiling value specifying the tiling arrangement of the texel blocks in memory.
- 
usageis a bitmask of VkImageUsageFlagBits describing the intended usage of the image.
- 
sharingModeis a VkSharingMode value specifying the sharing mode of the image when it will be accessed by multiple queue families.
- 
queueFamilyIndexCountis the number of entries in thepQueueFamilyIndicesarray.
- 
pQueueFamilyIndicesis a pointer to an array of queue families that will access this image. It is ignored ifsharingModeis notVK_SHARING_MODE_CONCURRENT.
- 
initialLayoutis a VkImageLayout value specifying the initial VkImageLayout of all image subresources of the image. See Image Layouts.
Description
Images created with tiling equal to VK_IMAGE_TILING_LINEAR have
further restrictions on their limits and capabilities compared to images
created with tiling equal to VK_IMAGE_TILING_OPTIMAL.
Creation of images with tiling VK_IMAGE_TILING_LINEAR may not be
supported unless other parameters meet all of the constraints:
- 
imageTypeisVK_IMAGE_TYPE_2D
- 
formatis not a depth/stencil format
- 
mipLevelsis 1
- 
arrayLayersis 1
- 
samplesisVK_SAMPLE_COUNT_1_BIT
- 
usageonly includesVK_IMAGE_USAGE_TRANSFER_SRC_BITand/orVK_IMAGE_USAGE_TRANSFER_DST_BIT
Images created with one of the formats that require a sampler Y′CBCR conversion, have further restrictions on their limits and capabilities compared to images created with other formats. Creation of images with a format requiring Y′CBCR conversion may not be supported unless other parameters meet all of the constraints:
- 
imageTypeisVK_IMAGE_TYPE_2D
- 
mipLevelsis 1
- 
arrayLayersis 1, unless theycbcrImageArraysfeature is enabled, or otherwise indicated by VkImageFormatProperties::maxArrayLayers, as returned by vkGetPhysicalDeviceImageFormatProperties
- 
samplesisVK_SAMPLE_COUNT_1_BIT
Images created with usage including
VK_IMAGE_USAGE_TILE_MEMORY_BIT_QCOM have further restrictions on their
limits and capabilities compared to images created without this bit.
Creation of images with usage including
VK_IMAGE_USAGE_TILE_MEMORY_BIT_QCOM may not be supported unless
parameters meet all of the constraints:
- 
flagsis 0 or only includesVK_IMAGE_CREATE_ALIAS_BIT
- 
imageTypeisVK_IMAGE_TYPE_2D
- 
mipLevelsis 1
- 
arrayLayersis 1
- 
samplesisVK_SAMPLE_COUNT_1_BIT
- 
tilingisVK_IMAGE_TILING_OPTIMAL
- 
usageincludesVK_IMAGE_USAGE_TILE_MEMORY_BIT_QCOMand any valid combination of the followingVK_IMAGE_USAGE_SAMPLED_BIT,VK_IMAGE_USAGE_STORAGE_BIT,VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT,VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT
Implementations may support additional limits and capabilities beyond those listed above.
To determine the set of valid usage bits for a given format, call
vkGetPhysicalDeviceFormatProperties.
If the size of the resultant image would exceed maxResourceSize, then
vkCreateImage must fail and return
VK_ERROR_OUT_OF_DEVICE_MEMORY.
This failure may occur even when all image creation parameters satisfy
their valid usage requirements.
If the implementation reports VK_TRUE in
VkPhysicalDeviceHostImageCopyProperties::identicalMemoryTypeRequirements,
usage of VK_IMAGE_USAGE_HOST_TRANSFER_BIT must not affect the memory
type requirements of the image as described in
Sparse Resource Memory Requirements and
Resource Memory Association.
| Note | For images created without  For images created with  | 
Valid values for some image creation parameters are limited by a numerical
upper bound or by inclusion in a bitset.
For example, VkImageCreateInfo::arrayLayers is limited by
imageCreateMaxArrayLayers, defined below; and
VkImageCreateInfo::samples is limited by
imageCreateSampleCounts, also defined below.
Several limiting values are defined below, as well as assisting values from which the limiting values are derived. The limiting values are referenced by the relevant valid usage statements of VkImageCreateInfo.
- 
Let uint64_t imageCreateDrmFormatModifiers[]be the set of Linux DRM format modifiers that the resultant image may have.- 
If tilingis notVK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, thenimageCreateDrmFormatModifiersis empty.
- 
If VkImageCreateInfo:: pNextcontains VkImageDrmFormatModifierExplicitCreateInfoEXT, thenimageCreateDrmFormatModifierscontains exactly one modifier, VkImageDrmFormatModifierExplicitCreateInfoEXT::drmFormatModifier.
- 
If VkImageCreateInfo:: pNextcontains VkImageDrmFormatModifierListCreateInfoEXT, thenimageCreateDrmFormatModifierscontains the entire array VkImageDrmFormatModifierListCreateInfoEXT::pDrmFormatModifiers.
 
- 
- 
Let VkBool32 imageCreateMaybeLinearindicate if the resultant image may be linear.- 
If tilingisVK_IMAGE_TILING_LINEAR, thenimageCreateMaybeLinearisVK_TRUE.
- 
If tilingisVK_IMAGE_TILING_OPTIMAL, thenimageCreateMaybeLinearisVK_FALSE.
- 
If tilingisVK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, thenimageCreateMaybeLinearisVK_TRUEif and only ifimageCreateDrmFormatModifierscontainsDRM_FORMAT_MOD_LINEAR.
 
- 
- 
Let VkFormatFeatureFlags imageCreateFormatFeaturesbe the set of valid format features available during image creation.- 
If tilingisVK_IMAGE_TILING_LINEAR, thenimageCreateFormatFeaturesis the value of VkFormatProperties::linearTilingFeaturesfound by calling vkGetPhysicalDeviceFormatProperties with parameterformatequal to VkImageCreateInfo::format.
- 
If tilingisVK_IMAGE_TILING_OPTIMAL, and if thepNextchain includes no VkExternalFormatANDROID or VkExternalFormatQNX structure with non-zeroexternalFormat, thenimageCreateFormatFeaturesis the value of VkFormatProperties::optimalTilingFeaturesfound by calling vkGetPhysicalDeviceFormatProperties with parameterformatequal to VkImageCreateInfo::format.
- 
If tilingisVK_IMAGE_TILING_OPTIMAL, and if thepNextchain includes a VkExternalFormatANDROID structure with non-zeroexternalFormat, thenimageCreateFormatFeaturesis the value of VkAndroidHardwareBufferFormatPropertiesANDROID::formatFeaturesobtained by vkGetAndroidHardwareBufferPropertiesANDROID with a matchingexternalFormatvalue.
- 
If tilingisVK_IMAGE_TILING_OPTIMAL, and if thepNextchain includes a VkExternalFormatQNX structure with non-zeroexternalFormat, thenimageCreateFormatFeaturesis the value of VkScreenBufferFormatPropertiesQNX::formatFeaturesobtained by vkGetScreenBufferPropertiesQNX with a matchingexternalFormatvalue.
- 
If the pNextchain includes a VkBufferCollectionImageCreateInfoFUCHSIA structure, thenimageCreateFormatFeaturesis the value of VkBufferCollectionPropertiesFUCHSIA::formatFeaturesfound by calling vkGetBufferCollectionPropertiesFUCHSIA with a parametercollectionequal to VkBufferCollectionImageCreateInfoFUCHSIA::collection
- 
If tilingisVK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then the value ofimageCreateFormatFeaturesis found by calling vkGetPhysicalDeviceFormatProperties2 with VkImageFormatProperties::formatequal to VkImageCreateInfo::formatand with VkDrmFormatModifierPropertiesListEXT chained into VkFormatProperties2; by collecting all members of the returned array VkDrmFormatModifierPropertiesListEXT::pDrmFormatModifierPropertieswhosedrmFormatModifierbelongs toimageCreateDrmFormatModifiers; and by taking the bitwise intersection, over the collected array members, ofdrmFormatModifierTilingFeatures. (The resultantimageCreateFormatFeaturesmay be empty).
 
- 
- 
Let VkImageFormatProperties2 imageCreateImageFormatPropertiesList[]be defined as follows.- 
If VkImageCreateInfo:: pNextcontains no VkExternalFormatANDROID or VkExternalFormatQNX structure with non-zeroexternalFormat, thenimageCreateImageFormatPropertiesListis the list of structures obtained by calling vkGetPhysicalDeviceImageFormatProperties2, possibly multiple times, as follows:- 
The parameters VkPhysicalDeviceImageFormatInfo2:: format,imageType,tiling,usage, andflagsmust be equal to those in VkImageCreateInfo.
- 
If VkImageCreateInfo:: pNextcontains a VkExternalMemoryImageCreateInfo structure whosehandleTypesis not0, then VkPhysicalDeviceImageFormatInfo2::pNextmust contain a VkPhysicalDeviceExternalImageFormatInfo structure whosehandleTypeis not0; and vkGetPhysicalDeviceImageFormatProperties2 must be called for each handle type in VkExternalMemoryImageCreateInfo::handleTypes, successively setting VkPhysicalDeviceExternalImageFormatInfo::handleTypeon each call.
- 
If VkImageCreateInfo:: pNextcontains no VkExternalMemoryImageCreateInfo structure, or contains a structure whosehandleTypesis0, then VkPhysicalDeviceImageFormatInfo2::pNextmust either contain no VkPhysicalDeviceExternalImageFormatInfo structure, or contain a structure whosehandleTypeis0.
- 
If VkImageCreateInfo:: pNextcontains a VkVideoProfileListInfoKHR structure then VkPhysicalDeviceImageFormatInfo2::pNextmust also contain the same VkVideoProfileListInfoKHR structure on each call.
- 
If tilingisVK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then:- 
VkPhysicalDeviceImageFormatInfo2:: pNextmust contain a VkPhysicalDeviceImageDrmFormatModifierInfoEXT structure wheresharingModeis equal to VkImageCreateInfo::sharingMode;
- 
if sharingModeisVK_SHARING_MODE_CONCURRENT, thenqueueFamilyIndexCountandpQueueFamilyIndicesmust be equal to those in VkImageCreateInfo;
- 
if flagscontainsVK_IMAGE_CREATE_MUTABLE_FORMAT_BIT, then the VkImageFormatListCreateInfo structure included in thepNextchain of VkPhysicalDeviceImageFormatInfo2 must be equivalent to the one included in thepNextchain of VkImageCreateInfo;
- 
if VkImageCreateInfo:: pNextcontains a VkImageCompressionControlEXT structure, then the VkPhysicalDeviceImageFormatInfo2::pNextchain must contain an equivalent structure;
- 
vkGetPhysicalDeviceImageFormatProperties2 must be called for each modifier in imageCreateDrmFormatModifiers, successively setting VkPhysicalDeviceImageDrmFormatModifierInfoEXT::drmFormatModifieron each call.
 
- 
- 
If tilingis notVK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then VkPhysicalDeviceImageFormatInfo2::pNextmust contain no VkPhysicalDeviceImageDrmFormatModifierInfoEXT structure.
- 
If any call to vkGetPhysicalDeviceImageFormatProperties2 returns an error, then imageCreateImageFormatPropertiesListis defined to be the empty list.
 
- 
- 
If VkImageCreateInfo:: pNextcontains a VkExternalFormatANDROID structure with non-zeroexternalFormat, thenimageCreateImageFormatPropertiesListcontains a single element where:- 
VkImageFormatProperties::maxMipLevelsis ⌊log2(max(extent.width,extent.height,extent.depth))⌋ + 1.
- 
VkImageFormatProperties::maxArrayLayersis VkPhysicalDeviceLimits::maxImageArrayLayers.
- 
Each component of VkImageFormatProperties::maxExtentis VkPhysicalDeviceLimits::maxImageDimension2D.
- 
VkImageFormatProperties::sampleCountscontains exactlyVK_SAMPLE_COUNT_1_BIT.
 
- 
 
- 
- 
Let uint32_t imageCreateMaxMipLevelsbe the minimum value of VkImageFormatProperties::maxMipLevelsinimageCreateImageFormatPropertiesList. The value is undefined ifimageCreateImageFormatPropertiesListis empty.
- 
Let uint32_t imageCreateMaxArrayLayersbe the minimum value of VkImageFormatProperties::maxArrayLayersinimageCreateImageFormatPropertiesList. The value is undefined ifimageCreateImageFormatPropertiesListis empty.
- 
Let VkExtent3D imageCreateMaxExtentbe the component-wise minimum over all VkImageFormatProperties::maxExtentvalues inimageCreateImageFormatPropertiesList. The value is undefined ifimageCreateImageFormatPropertiesListis empty.
- 
Let VkSampleCountFlags imageCreateSampleCountsbe the intersection of each VkImageFormatProperties::sampleCountsinimageCreateImageFormatPropertiesList. The value is undefined ifimageCreateImageFormatPropertiesListis empty.
- 
Let VkVideoFormatPropertiesKHR videoFormatProperties[]be defined as follows.- 
If VkImageCreateInfo:: pNextcontains a VkVideoProfileListInfoKHR structure, thenvideoFormatPropertiesis the list of structures obtained by calling vkGetPhysicalDeviceVideoFormatPropertiesKHR with VkPhysicalDeviceVideoFormatInfoKHR::imageUsageequal to theusagemember of VkImageCreateInfo and VkPhysicalDeviceVideoFormatInfoKHR::pNextcontaining the same VkVideoProfileListInfoKHR structure chained to VkImageCreateInfo.
- 
If VkImageCreateInfo:: pNextcontains no VkVideoProfileListInfoKHR structure, thenvideoFormatPropertiesis an empty list.
 
- 
- 
Let VkBool32 supportedVideoFormatindicate if the image parameters are supported by the specified video profiles.- 
supportedVideoFormatisVK_TRUEif there exists an element in thevideoFormatPropertieslist for which all of the following conditions are true:- 
VkImageCreateInfo:: formatequals VkVideoFormatPropertiesKHR::format.
- 
VkImageCreateInfo:: flagsonly containsVK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHRand/or bits also set in VkVideoFormatPropertiesKHR::imageCreateFlags.
- 
VkImageCreateInfo:: imageTypeequals VkVideoFormatPropertiesKHR::imageType.
- 
VkImageCreateInfo:: tilingequals VkVideoFormatPropertiesKHR::imageTiling.
- 
VkImageCreateInfo:: usageonly contains bits also set in VkVideoFormatPropertiesKHR::imageUsageFlags, or VkImageCreateInfo::flagsincludesVK_IMAGE_CREATE_EXTENDED_USAGE_BIT.
 
- 
- 
Otherwise supportedVideoFormatisVK_FALSE.
 
- 
- 
VUID-VkImageCreateInfo-imageCreateMaxMipLevels-02251 
 Each of the following values (as described in Image Creation Limits) must not be undefined :imageCreateMaxMipLevels,imageCreateMaxArrayLayers,imageCreateMaxExtent, andimageCreateSampleCounts
- 
VUID-VkImageCreateInfo-sharingMode-00941 
 IfsharingModeisVK_SHARING_MODE_CONCURRENT,pQueueFamilyIndicesmust be a valid pointer to an array ofqueueFamilyIndexCountuint32_tvalues
- 
VUID-VkImageCreateInfo-sharingMode-00942 
 IfsharingModeisVK_SHARING_MODE_CONCURRENT,queueFamilyIndexCountmust be greater than1
- 
VUID-VkImageCreateInfo-sharingMode-01420 
 IfsharingModeisVK_SHARING_MODE_CONCURRENT, each element ofpQueueFamilyIndicesmust be unique and must be less thanpQueueFamilyPropertyCountreturned by either vkGetPhysicalDeviceQueueFamilyProperties or vkGetPhysicalDeviceQueueFamilyProperties2 for thephysicalDevicethat was used to createdevice
- 
VUID-VkImageCreateInfo-pNext-01974 
 If thepNextchain includes a VkExternalFormatANDROID structure, and itsexternalFormatmember is non-zero theformatmust beVK_FORMAT_UNDEFINED
- 
VUID-VkImageCreateInfo-pNext-01975 
 If thepNextchain does not include a VkExternalFormatANDROID structure, or does and itsexternalFormatmember is0, theformatmust not beVK_FORMAT_UNDEFINED
- 
VUID-VkImageCreateInfo-extent-00944 
 extent.widthmust be greater than0
- 
VUID-VkImageCreateInfo-extent-00945 
 extent.heightmust be greater than0
- 
VUID-VkImageCreateInfo-extent-00946 
 extent.depthmust be greater than0
- 
VUID-VkImageCreateInfo-mipLevels-00947 
 mipLevelsmust be greater than0
- 
VUID-VkImageCreateInfo-arrayLayers-00948 
 arrayLayersmust be greater than0
- 
VUID-VkImageCreateInfo-flags-00949 
 IfflagscontainsVK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT,imageTypemust beVK_IMAGE_TYPE_2D
- 
VUID-VkImageCreateInfo-flags-08865 
 IfflagscontainsVK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT,extent.widthandextent.heightmust be equal
- 
VUID-VkImageCreateInfo-flags-08866 
 IfflagscontainsVK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT,arrayLayersmust be greater than or equal to 6
- 
VUID-VkImageCreateInfo-initialLayout-10765 
 If the zeroInitializeDeviceMemory feature is not enabled,initialLayoutmust not beVK_IMAGE_LAYOUT_ZERO_INITIALIZED_EXT
- 
VUID-VkImageCreateInfo-flags-02557 
 IfflagscontainsVK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT,imageTypemust beVK_IMAGE_TYPE_2D
- 
VUID-VkImageCreateInfo-flags-00950 
 IfflagscontainsVK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,imageTypemust beVK_IMAGE_TYPE_3D
- 
VUID-VkImageCreateInfo-flags-09403 
 IfflagscontainsVK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,flagsmust not includeVK_IMAGE_CREATE_SPARSE_ALIASED_BIT,VK_IMAGE_CREATE_SPARSE_BINDING_BIT, orVK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
- 
VUID-VkImageCreateInfo-flags-07755 
 IfflagscontainsVK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT,imageTypemust beVK_IMAGE_TYPE_3D
- 
VUID-VkImageCreateInfo-imageType-10197 
 IfflagscontainsVK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXTand either themaintenance9feature is not enabled on the device orimage2DViewOf3DSparseisVK_FALSE,flagsmust not includeVK_IMAGE_CREATE_SPARSE_ALIASED_BIT,VK_IMAGE_CREATE_SPARSE_BINDING_BIT, orVK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
- 
VUID-VkImageCreateInfo-extent-02252 
 extent.widthmust be less than or equal toimageCreateMaxExtent.width(as defined in Image Creation Limits)
- 
VUID-VkImageCreateInfo-extent-02253 
 extent.heightmust be less than or equal toimageCreateMaxExtent.height(as defined in Image Creation Limits)
- 
VUID-VkImageCreateInfo-extent-02254 
 extent.depthmust be less than or equal toimageCreateMaxExtent.depth(as defined in Image Creation Limits)
- 
VUID-VkImageCreateInfo-imageType-00956 
 IfimageTypeisVK_IMAGE_TYPE_1D, bothextent.heightandextent.depthmust be1
- 
VUID-VkImageCreateInfo-imageType-00957 
 IfimageTypeisVK_IMAGE_TYPE_2D,extent.depthmust be1
- 
VUID-VkImageCreateInfo-mipLevels-00958 
 mipLevelsmust be less than or equal to the number of levels in the complete mipmap chain based onextent.width,extent.height, andextent.depth
- 
VUID-VkImageCreateInfo-mipLevels-02255 
 mipLevelsmust be less than or equal toimageCreateMaxMipLevels(as defined in Image Creation Limits)
- 
VUID-VkImageCreateInfo-arrayLayers-02256 
 arrayLayersmust be less than or equal toimageCreateMaxArrayLayers(as defined in Image Creation Limits)
- 
VUID-VkImageCreateInfo-imageType-00961 
 IfimageTypeisVK_IMAGE_TYPE_3D,arrayLayersmust be1
- 
VUID-VkImageCreateInfo-samples-02257 
 Ifsamplesis notVK_SAMPLE_COUNT_1_BIT, thenimageTypemust beVK_IMAGE_TYPE_2D,flagsmust not containVK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT,mipLevelsmust be equal to1, andimageCreateMaybeLinear(as defined in Image Creation Limits) must beVK_FALSE,
- 
VUID-VkImageCreateInfo-samples-02558 
 Ifsamplesis notVK_SAMPLE_COUNT_1_BIT,usagemust not containVK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT
- 
VUID-VkImageCreateInfo-usage-00963 
 IfusageincludesVK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, then bits other thanVK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT,VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, andVK_IMAGE_USAGE_INPUT_ATTACHMENT_BITmust not be set
- 
VUID-VkImageCreateInfo-usage-00964 
 IfusageincludesVK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT,VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, orVK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT,extent.widthmust be less than or equal toVkPhysicalDeviceLimits::maxFramebufferWidth
- 
VUID-VkImageCreateInfo-usage-00965 
 IfusageincludesVK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT,VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, orVK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT,extent.heightmust be less than or equal toVkPhysicalDeviceLimits::maxFramebufferHeight
- 
VUID-VkImageCreateInfo-fragmentDensityMapOffset-06514 
 If thefragmentDensityMapOffsetfeature is not enabled andusageincludesVK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT,extent.widthmust be less than or equal to ⌈minFragmentDensityTexelSizewidthmaxFramebufferWidth⌉
- 
VUID-VkImageCreateInfo-fragmentDensityMapOffset-06515 
 If thefragmentDensityMapOffsetfeature is not enabled andusageincludesVK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT,extent.heightmust be less than or equal to ⌈minFragmentDensityTexelSizeheightmaxFramebufferHeight⌉
- 
VUID-VkImageCreateInfo-usage-00966 
 IfusageincludesVK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT,usagemust also contain at least one ofVK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT,VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, orVK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT
- 
VUID-VkImageCreateInfo-samples-02258 
 samplesmust be a valid VkSampleCountFlagBits value that is set inimageCreateSampleCounts(as defined in Image Creation Limits)
- 
VUID-VkImageCreateInfo-usage-00968 
 If theshaderStorageImageMultisamplefeature is not enabled, andusagecontainsVK_IMAGE_USAGE_STORAGE_BIT,samplesmust beVK_SAMPLE_COUNT_1_BIT
- 
VUID-VkImageCreateInfo-flags-00969 
 If thesparseBindingfeature is not enabled,flagsmust not containVK_IMAGE_CREATE_SPARSE_BINDING_BIT
- 
VUID-VkImageCreateInfo-flags-01924 
 If thesparseResidencyAliasedfeature is not enabled,flagsmust not containVK_IMAGE_CREATE_SPARSE_ALIASED_BIT
- 
VUID-VkImageCreateInfo-tiling-04121 
 IftilingisVK_IMAGE_TILING_LINEAR,flagsmust not containVK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
- 
VUID-VkImageCreateInfo-imageType-00970 
 IfimageTypeisVK_IMAGE_TYPE_1D,flagsmust not containVK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
- 
VUID-VkImageCreateInfo-imageType-00971 
 If thesparseResidencyImage2Dfeature is not enabled, andimageTypeisVK_IMAGE_TYPE_2D,flagsmust not containVK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
- 
VUID-VkImageCreateInfo-imageType-00972 
 If thesparseResidencyImage3Dfeature is not enabled, andimageTypeisVK_IMAGE_TYPE_3D,flagsmust not containVK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
- 
VUID-VkImageCreateInfo-imageType-00973 
 If thesparseResidency2Samplesfeature is not enabled,imageTypeisVK_IMAGE_TYPE_2D, andsamplesisVK_SAMPLE_COUNT_2_BIT,flagsmust not containVK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
- 
VUID-VkImageCreateInfo-imageType-00974 
 If thesparseResidency4Samplesfeature is not enabled,imageTypeisVK_IMAGE_TYPE_2D, andsamplesisVK_SAMPLE_COUNT_4_BIT,flagsmust not containVK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
- 
VUID-VkImageCreateInfo-imageType-00975 
 If thesparseResidency8Samplesfeature is not enabled,imageTypeisVK_IMAGE_TYPE_2D, andsamplesisVK_SAMPLE_COUNT_8_BIT,flagsmust not containVK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
- 
VUID-VkImageCreateInfo-imageType-00976 
 If thesparseResidency16Samplesfeature is not enabled,imageTypeisVK_IMAGE_TYPE_2D, andsamplesisVK_SAMPLE_COUNT_16_BIT,flagsmust not containVK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
- 
VUID-VkImageCreateInfo-flags-00987 
 IfflagscontainsVK_IMAGE_CREATE_SPARSE_RESIDENCY_BITorVK_IMAGE_CREATE_SPARSE_ALIASED_BIT, it must also containVK_IMAGE_CREATE_SPARSE_BINDING_BIT
- 
VUID-VkImageCreateInfo-None-01925 
 If any of the bitsVK_IMAGE_CREATE_SPARSE_BINDING_BIT,VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT, orVK_IMAGE_CREATE_SPARSE_ALIASED_BITare set,VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BITmust not also be set
- 
VUID-VkImageCreateInfo-flags-01890 
 If theprotectedMemoryfeature is not enabled,flagsmust not containVK_IMAGE_CREATE_PROTECTED_BIT
- 
VUID-VkImageCreateInfo-None-01891 
 If any of the bitsVK_IMAGE_CREATE_SPARSE_BINDING_BIT,VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT, orVK_IMAGE_CREATE_SPARSE_ALIASED_BITare set,VK_IMAGE_CREATE_PROTECTED_BITmust not also be set
- 
VUID-VkImageCreateInfo-pNext-00988 
 If thepNextchain includes a VkExternalMemoryImageCreateInfoNV structure, it must not contain a VkExternalMemoryImageCreateInfo structure
- 
VUID-VkImageCreateInfo-pNext-00990 
 If thepNextchain includes a VkExternalMemoryImageCreateInfo structure, itshandleTypesmember must only contain bits that are also in VkExternalImageFormatProperties::externalMemoryProperties.compatibleHandleTypes, as returned by vkGetPhysicalDeviceImageFormatProperties2 withformat,imageType,tiling,usage, andflagsequal to those in this structure, and with a VkPhysicalDeviceExternalImageFormatInfo structure included in thepNextchain, with ahandleTypeequal to any one of the handle types specified in VkExternalMemoryImageCreateInfo::handleTypes
- 
VUID-VkImageCreateInfo-pNext-00991 
 If thepNextchain includes a VkExternalMemoryImageCreateInfoNV structure, itshandleTypesmember must only contain bits that are also in VkExternalImageFormatPropertiesNV::externalMemoryFeatures.compatibleHandleTypes, as returned by vkGetPhysicalDeviceExternalImageFormatPropertiesNV withformat,imageType,tiling,usage, andflagsequal to those in this structure, and withexternalHandleTypeequal to any one of the handle types specified in VkExternalMemoryImageCreateInfoNV::handleTypes
- 
VUID-VkImageCreateInfo-physicalDeviceCount-01421 
 If the logical device was created with VkDeviceGroupDeviceCreateInfo::physicalDeviceCountequal to 1,flagsmust not containVK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT
- 
VUID-VkImageCreateInfo-flags-02259 
 IfflagscontainsVK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT, thenmipLevelsmust be one,arrayLayersmust be one,imageTypemust beVK_IMAGE_TYPE_2D. andimageCreateMaybeLinear(as defined in Image Creation Limits) must beVK_FALSE
- 
VUID-VkImageCreateInfo-flags-01572 
 IfflagscontainsVK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, thenformatmust be a compressed image format
- 
VUID-VkImageCreateInfo-flags-01573 
 IfflagscontainsVK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, thenflagsmust also containVK_IMAGE_CREATE_MUTABLE_FORMAT_BIT
- 
VUID-VkImageCreateInfo-initialLayout-00993 
 initialLayoutmust beVK_IMAGE_LAYOUT_UNDEFINEDorVK_IMAGE_LAYOUT_ZERO_INITIALIZED_EXTorVK_IMAGE_LAYOUT_PREINITIALIZED
- 
VUID-VkImageCreateInfo-pNext-01443 
 If thepNextchain includes a VkExternalMemoryImageCreateInfo orVkExternalMemoryImageCreateInfoNVstructure whosehandleTypesmember is not0,initialLayoutmust beVK_IMAGE_LAYOUT_UNDEFINED
- 
VUID-VkImageCreateInfo-format-06410 
 If the imageformatis one of the formats that require a sampler Y′CBCR conversion,mipLevelsmust be 1
- 
VUID-VkImageCreateInfo-format-06411 
 If the imageformatis one of the formats that require a sampler Y′CBCR conversion,samplesmust beVK_SAMPLE_COUNT_1_BIT
- 
VUID-VkImageCreateInfo-format-06412 
 If the imageformatis one of the formats that require a sampler Y′CBCR conversion,imageTypemust beVK_IMAGE_TYPE_2D
- 
VUID-VkImageCreateInfo-imageCreateFormatFeatures-02260 
 Ifformatis a multi-planar format, and ifimageCreateFormatFeatures(as defined in Image Creation Limits) does not containVK_FORMAT_FEATURE_DISJOINT_BIT, thenflagsmust not containVK_IMAGE_CREATE_DISJOINT_BIT
- 
VUID-VkImageCreateInfo-format-01577 
 Ifformatis not a multi-planar format, andflagsdoes not includeVK_IMAGE_CREATE_ALIAS_BIT,flagsmust not containVK_IMAGE_CREATE_DISJOINT_BIT
- 
VUID-VkImageCreateInfo-format-04712 
 Ifformathas a_422or_420suffix,extent.widthmust be a multiple of 2
- 
VUID-VkImageCreateInfo-format-04713 
 Ifformathas a_420suffix,extent.heightmust be a multiple of 2
- 
VUID-VkImageCreateInfo-format-09583 
 Ifformatis one of theVK_FORMAT_PVTRC1_*_IMGformats,extent.widthmust be a power of 2
- 
VUID-VkImageCreateInfo-format-09584 
 Ifformatis one of theVK_FORMAT_PVTRC1_*_IMGformats,extent.heightmust be a power of 2
- 
VUID-VkImageCreateInfo-tiling-02261 
 IftilingisVK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then thepNextchain must include exactly one of VkImageDrmFormatModifierListCreateInfoEXT or VkImageDrmFormatModifierExplicitCreateInfoEXT structures
- 
VUID-VkImageCreateInfo-pNext-02262 
 If thepNextchain includes a VkImageDrmFormatModifierListCreateInfoEXT or VkImageDrmFormatModifierExplicitCreateInfoEXT structure, thentilingmust beVK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT
- 
VUID-VkImageCreateInfo-tiling-02353 
 IftilingisVK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXTandflagscontainsVK_IMAGE_CREATE_MUTABLE_FORMAT_BIT, then thepNextchain must include a VkImageFormatListCreateInfo structure with non-zeroviewFormatCount
- 
VUID-VkImageCreateInfo-flags-01533 
 IfflagscontainsVK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXTformatmust be a depth or depth/stencil format
- 
VUID-VkImageCreateInfo-pNext-02393 
 If thepNextchain includes a VkExternalMemoryImageCreateInfo structure whosehandleTypesmember includesVK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID,imageTypemust beVK_IMAGE_TYPE_2D
- 
VUID-VkImageCreateInfo-pNext-02394 
 If thepNextchain includes a VkExternalMemoryImageCreateInfo structure whosehandleTypesmember includesVK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID,mipLevelsmust either be1or equal to the number of levels in the complete mipmap chain based onextent.width,extent.height, andextent.depth
- 
VUID-VkImageCreateInfo-pNext-02396 
 If thepNextchain includes a VkExternalFormatANDROID structure whoseexternalFormatmember is not0,flagsmust not includeVK_IMAGE_CREATE_MUTABLE_FORMAT_BIT
- 
VUID-VkImageCreateInfo-pNext-02397 
 If thepNextchain includes a VkExternalFormatANDROID structure whoseexternalFormatmember is not0,usagemust not include any usages exceptVK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT,VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, orVK_IMAGE_USAGE_SAMPLED_BIT
- 
VUID-VkImageCreateInfo-pNext-09457 
 If thepNextchain includes a VkExternalFormatANDROID structure whoseexternalFormatmember is not0, andexternalFormatResolvefeature is not enabled,usagemust not includeVK_IMAGE_USAGE_INPUT_ATTACHMENT_BITorVK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
- 
VUID-VkImageCreateInfo-pNext-02398 
 If thepNextchain includes a VkExternalFormatANDROID structure whoseexternalFormatmember is not0,tilingmust beVK_IMAGE_TILING_OPTIMAL
- 
VUID-VkImageCreateInfo-pNext-08951 
 If thepNextchain includes a VkExternalMemoryImageCreateInfo structure whosehandleTypesmember includesVK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX,imageTypemust beVK_IMAGE_TYPE_2D
- 
VUID-VkImageCreateInfo-pNext-08952 
 If thepNextchain includes a VkExternalMemoryImageCreateInfo structure whosehandleTypesmember includesVK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX,mipLevelsmust either be1or equal to the number of levels in the complete mipmap chain based onextent.width,extent.height, andextent.depth
- 
VUID-VkImageCreateInfo-pNext-08953 
 If thepNextchain includes a VkExternalFormatQNX structure whoseexternalFormatmember is not0,flagsmust not includeVK_IMAGE_CREATE_MUTABLE_FORMAT_BIT
- 
VUID-VkImageCreateInfo-pNext-08954 
 If thepNextchain includes a VkExternalFormatQNX structure whoseexternalFormatmember is not0,usagemust not include any usages exceptVK_IMAGE_USAGE_SAMPLED_BIT
- 
VUID-VkImageCreateInfo-pNext-08955 
 If thepNextchain includes a VkExternalFormatQNX structure whoseexternalFormatmember is not0,tilingmust beVK_IMAGE_TILING_OPTIMAL
- 
VUID-VkImageCreateInfo-format-02795 
 Ifformatis a depth-stencil format,usageincludesVK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, and thepNextchain includes a VkImageStencilUsageCreateInfo structure, then its VkImageStencilUsageCreateInfo::stencilUsagemember must also includeVK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
- 
VUID-VkImageCreateInfo-format-02796 
 Ifformatis a depth-stencil format,usagedoes not includeVK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, and thepNextchain includes a VkImageStencilUsageCreateInfo structure, then its VkImageStencilUsageCreateInfo::stencilUsagemember must also not includeVK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
- 
VUID-VkImageCreateInfo-format-02797 
 Ifformatis a depth-stencil format,usageincludesVK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, and thepNextchain includes a VkImageStencilUsageCreateInfo structure, then its VkImageStencilUsageCreateInfo::stencilUsagemember must also includeVK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT
- 
VUID-VkImageCreateInfo-format-02798 
 Ifformatis a depth-stencil format,usagedoes not includeVK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, and thepNextchain includes a VkImageStencilUsageCreateInfo structure, then its VkImageStencilUsageCreateInfo::stencilUsagemember must also not includeVK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT
- 
VUID-VkImageCreateInfo-Format-02536 
 IfFormatis a depth-stencil format and thepNextchain includes a VkImageStencilUsageCreateInfo structure with itsstencilUsagemember includingVK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT,extent.widthmust be less than or equal toVkPhysicalDeviceLimits::maxFramebufferWidth
- 
VUID-VkImageCreateInfo-format-02537 
 Ifformatis a depth-stencil format and thepNextchain includes a VkImageStencilUsageCreateInfo structure with itsstencilUsagemember includingVK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT,extent.heightmust be less than or equal toVkPhysicalDeviceLimits::maxFramebufferHeight
- 
VUID-VkImageCreateInfo-format-02538 
 If theshaderStorageImageMultisamplefeature is not enabled,formatis a depth-stencil format and thepNextchain includes a VkImageStencilUsageCreateInfo structure with itsstencilUsageincludingVK_IMAGE_USAGE_STORAGE_BIT,samplesmust beVK_SAMPLE_COUNT_1_BIT
- 
VUID-VkImageCreateInfo-flags-02050 
 IfflagscontainsVK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV,imageTypemust beVK_IMAGE_TYPE_2DorVK_IMAGE_TYPE_3D
- 
VUID-VkImageCreateInfo-flags-02051 
 IfflagscontainsVK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV, it must not containVK_IMAGE_CREATE_CUBE_COMPATIBLE_BITand theformatmust not be a depth/stencil format
- 
VUID-VkImageCreateInfo-flags-02052 
 IfflagscontainsVK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NVandimageTypeisVK_IMAGE_TYPE_2D,extent.widthandextent.heightmust be greater than1
- 
VUID-VkImageCreateInfo-flags-02053 
 IfflagscontainsVK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NVandimageTypeisVK_IMAGE_TYPE_3D,extent.width,extent.height, andextent.depthmust be greater than1
- 
VUID-VkImageCreateInfo-imageType-02082 
 IfusageincludesVK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,imageTypemust beVK_IMAGE_TYPE_2D
- 
VUID-VkImageCreateInfo-samples-02083 
 IfusageincludesVK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,samplesmust beVK_SAMPLE_COUNT_1_BIT
- 
VUID-VkImageCreateInfo-shadingRateImage-07727 
 If theshadingRateImagefeature is enabled andusageincludesVK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV,tilingmust beVK_IMAGE_TILING_OPTIMAL
- 
VUID-VkImageCreateInfo-flags-02565 
 IfflagscontainsVK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT,tilingmust beVK_IMAGE_TILING_OPTIMAL
- 
VUID-VkImageCreateInfo-flags-02566 
 IfflagscontainsVK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT,imageTypemust beVK_IMAGE_TYPE_2D
- 
VUID-VkImageCreateInfo-flags-02567 
 IfflagscontainsVK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT,flagsmust not containVK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT
- 
VUID-VkImageCreateInfo-flags-02568 
 IfflagscontainsVK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT,mipLevelsmust be1
- 
VUID-VkImageCreateInfo-usage-04992 
 IfusageincludesVK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI,tilingmust beVK_IMAGE_TILING_LINEAR
- 
VUID-VkImageCreateInfo-imageView2DOn3DImage-04459 
 If theVK_KHR_portability_subsetextension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::imageView2DOn3DImageisVK_FALSE,flagsmust not containVK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT
- 
VUID-VkImageCreateInfo-multisampleArrayImage-04460 
 If theVK_KHR_portability_subsetextension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::multisampleArrayImageisVK_FALSE, andsamplesis notVK_SAMPLE_COUNT_1_BIT, thenarrayLayersmust be1
- 
VUID-VkImageCreateInfo-pNext-06722 
 If a VkImageFormatListCreateInfo structure was included in thepNextchain andformatis not a multi-planar format and VkImageFormatListCreateInfo::viewFormatCountis not zero, then each format in VkImageFormatListCreateInfo::pViewFormatsmust either be compatible with theformatas described in the compatibility table or, ifflagscontainsVK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, be an uncompressed format that is size-compatible withformat
- 
VUID-VkImageCreateInfo-pNext-10062 
 If a VkImageFormatListCreateInfo structure was included in thepNextchain andformatis a multi-planar format andflagscontainsVK_IMAGE_CREATE_MUTABLE_FORMAT_BITand VkImageFormatListCreateInfo::viewFormatCountis not zero, then each format in VkImageFormatListCreateInfo::pViewFormatsmust be compatible with theVkFormatfor the plane of the image format
- 
VUID-VkImageCreateInfo-flags-04738 
 Ifflagsdoes not containVK_IMAGE_CREATE_MUTABLE_FORMAT_BITand thepNextchain includes a VkImageFormatListCreateInfo structure, then VkImageFormatListCreateInfo::viewFormatCountmust be0or1
- 
VUID-VkImageCreateInfo-usage-04815 
 IfusageincludesVK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR,VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR, orVK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR, andflagsdoes not includeVK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR, then thepNextchain must include a VkVideoProfileListInfoKHR structure withprofileCountgreater than0andpProfilesincluding at least one VkVideoProfileInfoKHR structure with avideoCodecOperationmember specifying a decode operation
- 
VUID-VkImageCreateInfo-usage-04816 
 IfusageincludesVK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR,VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR, orVK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR, andflagsdoes not includeVK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR, then thepNextchain must include a VkVideoProfileListInfoKHR structure withprofileCountgreater than0andpProfilesincluding at least one VkVideoProfileInfoKHR structure with avideoCodecOperationmember specifying an encode operation
- 
VUID-VkImageCreateInfo-flags-08328 
 IfflagsincludesVK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR, thenvideoMaintenance1must be enabled
- 
VUID-VkImageCreateInfo-flags-08329 
 IfflagsincludesVK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHRandusagedoes not includeVK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR, thenusagemust not includeVK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR
- 
VUID-VkImageCreateInfo-flags-08331 
 IfflagsincludesVK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR, thenusagemust not includeVK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR,VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR, orVK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR
- 
VUID-VkImageCreateInfo-pNext-06811 
 If thepNextchain includes a VkVideoProfileListInfoKHR structure withprofileCountgreater than0, thensupportedVideoFormatmust beVK_TRUE
- 
VUID-VkImageCreateInfo-pNext-10784 
 If thepNextchain includes a VkVideoProfileListInfoKHR structure and for any element of itspProfilesmembervideoCodecOperationisVK_VIDEO_CODEC_OPERATION_DECODE_VP9_BIT_KHR, then thevideoDecodeVP9feature must be enabled
- 
VUID-VkImageCreateInfo-pNext-10250 
 If thepNextchain includes a VkVideoProfileListInfoKHR structure and for any element of itspProfilesmembervideoCodecOperationisVK_VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR, then thevideoEncodeAV1feature must be enabled
- 
VUID-VkImageCreateInfo-usage-10251 
 IfusageincludesVK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHRorVK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR, then thevideoEncodeQuantizationMapfeature must be enabled
- 
VUID-VkImageCreateInfo-usage-10252 
 IfusageincludesVK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHRorVK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR,imageTypemust beVK_IMAGE_TYPE_2D
- 
VUID-VkImageCreateInfo-usage-10253 
 IfusageincludesVK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHRorVK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR,samplesmust beVK_SAMPLE_COUNT_1_BIT
- 
VUID-VkImageCreateInfo-usage-10254 
 IfusageincludesVK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHRorVK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR, then thepNextchain must include a VkVideoProfileListInfoKHR structure withprofileCountequal to1andpProfilespointing to a VkVideoProfileInfoKHR structure with avideoCodecOperationmember specifying an encode operation
- 
VUID-VkImageCreateInfo-usage-10255 
 IfusageincludesVK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR, then VkVideoEncodeCapabilitiesKHR::flagsmust includeVK_VIDEO_ENCODE_CAPABILITY_QUANTIZATION_DELTA_MAP_BIT_KHR, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile specified in thepProfilesmember of the VkVideoProfileListInfoKHR structure included in thepNextchain
- 
VUID-VkImageCreateInfo-usage-10256 
 IfusageincludesVK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR, then VkVideoEncodeCapabilitiesKHR::flagsmust includeVK_VIDEO_ENCODE_CAPABILITY_EMPHASIS_MAP_BIT_KHR, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile specified in thepProfilesmember of the VkVideoProfileListInfoKHR structure included in thepNextchain
- 
VUID-VkImageCreateInfo-usage-10257 
 IfusageincludesVK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHRorVK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR,extent.widthmust be less than or equal to VkVideoEncodeQuantizationMapCapabilitiesKHR::maxQuantizationMapExtent.width, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile specified in thepProfilesmember of the VkVideoProfileListInfoKHR structure included in thepNextchain
- 
VUID-VkImageCreateInfo-usage-10258 
 IfusageincludesVK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHRorVK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR,extent.heightmust be less than or equal to VkVideoEncodeQuantizationMapCapabilitiesKHR::maxQuantizationMapExtent.height, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile specified in thepProfilesmember of the VkVideoProfileListInfoKHR structure included in thepNextchain
- 
VUID-VkImageCreateInfo-pNext-06390 
 If the VkImage is to be used to import memory from a VkBufferCollectionFUCHSIA, a VkBufferCollectionImageCreateInfoFUCHSIA structure must be chained topNext
- 
VUID-VkImageCreateInfo-multisampledRenderToSingleSampled-06882 
 If themultisampledRenderToSingleSampledfeature is not enabled,flagsmust not containVK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT
- 
VUID-VkImageCreateInfo-flags-06883 
 IfflagscontainsVK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT,samplesmust beVK_SAMPLE_COUNT_1_BIT
- 
VUID-VkImageCreateInfo-pNext-06743 
 If thepNextchain includes a VkImageCompressionControlEXT structure,formatis a multi-planar format, and VkImageCompressionControlEXT::flagsincludesVK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT, then VkImageCompressionControlEXT::compressionControlPlaneCountmust be equal to the number of planes informat
- 
VUID-VkImageCreateInfo-pNext-06744 
 If thepNextchain includes a VkImageCompressionControlEXT structure,formatis not a multi-planar format, and VkImageCompressionControlEXT::flagsincludesVK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT, then VkImageCompressionControlEXT::compressionControlPlaneCountmust be 1
- 
VUID-VkImageCreateInfo-pNext-06746 
 If thepNextchain includes a VkImageCompressionControlEXT structure, it must not contain a VkImageDrmFormatModifierExplicitCreateInfoEXT structure
- 
VUID-VkImageCreateInfo-flags-08104 
 IfflagsincludesVK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT, thedescriptorBufferCaptureReplayfeature must be enabled
- 
VUID-VkImageCreateInfo-pNext-08105 
 If thepNextchain includes a VkOpaqueCaptureDescriptorDataCreateInfoEXT structure,flagsmust containVK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT
- 
VUID-VkImageCreateInfo-pNext-06783 
 If thepNextchain includes a VkExportMetalObjectCreateInfoEXT structure, itsexportObjectTypemember must be eitherVK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXTorVK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT
- 
VUID-VkImageCreateInfo-pNext-06784 
 If thepNextchain includes a VkImportMetalTextureInfoEXT structure itsplanemember must beVK_IMAGE_ASPECT_PLANE_0_BIT,VK_IMAGE_ASPECT_PLANE_1_BIT, orVK_IMAGE_ASPECT_PLANE_2_BIT
- 
VUID-VkImageCreateInfo-pNext-06785 
 If thepNextchain includes a VkImportMetalTextureInfoEXT structure and the image does not have a multi-planar format, then VkImportMetalTextureInfoEXT::planemust beVK_IMAGE_ASPECT_PLANE_0_BIT
- 
VUID-VkImageCreateInfo-pNext-06786 
 If thepNextchain includes a VkImportMetalTextureInfoEXT structure and the image has a multi-planar format with only two planes, then VkImportMetalTextureInfoEXT::planemust not beVK_IMAGE_ASPECT_PLANE_2_BIT
- 
VUID-VkImageCreateInfo-imageCreateFormatFeatures-09048 
 IfimageCreateFormatFeatures(as defined in Image Creation Limits) does not containVK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT, thenusagemust not containVK_IMAGE_USAGE_HOST_TRANSFER_BIT
- 
VUID-VkImageCreateInfo-usage-10245 
 IfusageincludesVK_IMAGE_USAGE_HOST_TRANSFER_BIT, then thehostImageCopyfeature must be enabled
- 
VUID-VkImageCreateInfo-tileMemoryHeap-10766 
 If thetileMemoryHeapfeature is not enabled,usagemust not includeVK_IMAGE_USAGE_TILE_MEMORY_BIT_QCOM
- 
VUID-VkImageCreateInfo-pNext-09653 
 If thepNextchain contains a VkImageAlignmentControlCreateInfoMESA structure,tilingmust beVK_IMAGE_TILING_OPTIMAL
- 
VUID-VkImageCreateInfo-pNext-09654 
 If thepNextchain contains a VkImageAlignmentControlCreateInfoMESA structure, it must not contain a VkExternalMemoryImageCreateInfo structure
- 
VUID-VkImageCreateInfo-tiling-09711 
 Iftilingis VK_IMAGE_TILING_LINEAR thenVK_IMAGE_USAGE_TENSOR_ALIASING_BIT_ARMmust not be set inusage.
- 
VUID-VkImageCreateInfo-sType-sType 
 sTypemust beVK_STRUCTURE_TYPE_IMAGE_CREATE_INFO
- 
VUID-VkImageCreateInfo-pNext-pNext 
 EachpNextmember of any structure (including this one) in thepNextchain must be eitherNULLor a pointer to a valid instance of VkBufferCollectionImageCreateInfoFUCHSIA, VkDedicatedAllocationImageCreateInfoNV, VkExportMetalObjectCreateInfoEXT, VkExternalFormatANDROID, VkExternalFormatQNX, VkExternalMemoryImageCreateInfo, VkExternalMemoryImageCreateInfoNV, VkImageAlignmentControlCreateInfoMESA, VkImageCompressionControlEXT, VkImageDrmFormatModifierExplicitCreateInfoEXT, VkImageDrmFormatModifierListCreateInfoEXT, VkImageFormatListCreateInfo, VkImageStencilUsageCreateInfo, VkImageSwapchainCreateInfoKHR, VkImportMetalIOSurfaceInfoEXT, VkImportMetalTextureInfoEXT, VkOpaqueCaptureDescriptorDataCreateInfoEXT, VkOpticalFlowImageFormatInfoNV, or VkVideoProfileListInfoKHR
- 
VUID-VkImageCreateInfo-sType-unique 
 ThesTypevalue of each structure in thepNextchain must be unique, with the exception of structures of type VkExportMetalObjectCreateInfoEXT or VkImportMetalTextureInfoEXT
- 
VUID-VkImageCreateInfo-flags-parameter 
 flagsmust be a valid combination of VkImageCreateFlagBits values
- 
VUID-VkImageCreateInfo-imageType-parameter 
 imageTypemust be a valid VkImageType value
- 
VUID-VkImageCreateInfo-format-parameter 
 formatmust be a valid VkFormat value
- 
VUID-VkImageCreateInfo-samples-parameter 
 samplesmust be a valid VkSampleCountFlagBits value
- 
VUID-VkImageCreateInfo-tiling-parameter 
 tilingmust be a valid VkImageTiling value
- 
VUID-VkImageCreateInfo-usage-parameter 
 usagemust be a valid combination of VkImageUsageFlagBits values
- 
VUID-VkImageCreateInfo-usage-requiredbitmask 
 usagemust not be0
- 
VUID-VkImageCreateInfo-sharingMode-parameter 
 sharingModemust be a valid VkSharingMode value
- 
VUID-VkImageCreateInfo-initialLayout-parameter 
 initialLayoutmust be a valid VkImageLayout value
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.