VkImageCreateInfo(3)
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 not VK_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:
-
imageTypeis VK_IMAGE_TYPE_2D -
formatis not a depth/stencil format -
mipLevelsis 1 -
arrayLayersis 1 -
samplesis VK_SAMPLE_COUNT_1_BIT -
usageonly includes VK_IMAGE_USAGE_TRANSFER_SRC_BIT and/or VK_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:
-
imageTypeis VK_IMAGE_TYPE_2D -
mipLevelsis 1 -
arrayLayersis 1, unless theycbcrImageArraysfeature is enabled, or otherwise indicated by VkImageFormatProperties::maxArrayLayers, as returned by vkGetPhysicalDeviceImageFormatProperties -
samplesis VK_SAMPLE_COUNT_1_BIT
Images created with the VK_IMAGE_USAGE_TILE_MEMORY_BIT_QCOM usage flag set have further restrictions on their limits and capabilities compared to images created without this flag. 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 includes VK_IMAGE_CREATE_ALIAS_BIT -
imageTypeis VK_IMAGE_TYPE_2D -
mipLevelsis 1 -
arrayLayersis 1 -
samplesis VK_SAMPLE_COUNT_1_BIT -
tilingis VK_IMAGE_TILING_OPTIMAL -
usageincludes VK_IMAGE_USAGE_TILE_MEMORY_BIT_QCOM and any valid combination of the following VK_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.
|
For images created without the VK_IMAGE_CREATE_EXTENDED_USAGE_BIT flag
set, a For images created with VK_IMAGE_CREATE_EXTENDED_USAGE_BIT a
|
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 not VK_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
tilingis VK_IMAGE_TILING_LINEAR, thenimageCreateMaybeLinearis VK_TRUE. -
If
tilingis VK_IMAGE_TILING_OPTIMAL, thenimageCreateMaybeLinearis VK_FALSE. -
If
tilingis VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, thenimageCreateMaybeLinearis VK_TRUE if and only ifimageCreateDrmFormatModifierscontainsDRM_FORMAT_MOD_LINEAR.
-
-
Let
VkFormatFeatureFlags imageCreateFormatFeaturesbe the set of valid format features available during image creation.-
If
tilingis VK_IMAGE_TILING_LINEAR, thenimageCreateFormatFeaturesis the value of VkFormatProperties::linearTilingFeaturesfound by calling vkGetPhysicalDeviceFormatProperties with parameterformatequal to VkImageCreateInfo::format. -
If
tilingis VK_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
tilingis VK_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
tilingis VK_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
tilingis VK_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
tilingis VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then:-
VkPhysicalDeviceImageFormatInfo2::
pNextmust contain a VkPhysicalDeviceImageDrmFormatModifierInfoEXT structure wheresharingModeis equal to VkImageCreateInfo::sharingMode; -
if
sharingModeis VK_SHARING_MODE_CONCURRENT, thenqueueFamilyIndexCountandpQueueFamilyIndicesmust be equal to those in VkImageCreateInfo; -
if
flagscontains VK_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 not VK_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 exactly VK_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.-
supportedVideoFormatis VK_TRUE if there exists an element in thevideoFormatPropertieslist for which all of the following conditions are true:-
VkImageCreateInfo::
formatequals VkVideoFormatPropertiesKHR::format. -
VkImageCreateInfo::
flagsonly contains VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR and/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::flagsincludes VK_IMAGE_CREATE_EXTENDED_USAGE_BIT.
-
-
Otherwise
supportedVideoFormatis VK_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
IfsharingModeis VK_SHARING_MODE_CONCURRENT,pQueueFamilyIndicesmust be a valid pointer to an array ofqueueFamilyIndexCountuint32_tvalues -
VUID-VkImageCreateInfo-sharingMode-00942
IfsharingModeis VK_SHARING_MODE_CONCURRENT,queueFamilyIndexCountmust be greater than1 -
VUID-VkImageCreateInfo-sharingMode-01420
IfsharingModeis VK_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 be VK_FORMAT_UNDEFINED -
VUID-VkImageCreateInfo-pNext-01975
If thepNextchain does not include a VkExternalFormatANDROID structure, or does and itsexternalFormatmember is0, theformatmust not be VK_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
Ifflagscontains VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT,imageTypemust be VK_IMAGE_TYPE_2D -
VUID-VkImageCreateInfo-flags-08865
Ifflagscontains VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT,extent.widthandextent.heightmust be equal -
VUID-VkImageCreateInfo-flags-08866
Ifflagscontains VK_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 be VK_IMAGE_LAYOUT_ZERO_INITIALIZED_EXT -
VUID-VkImageCreateInfo-flags-02557
Ifflagscontains VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT,imageTypemust be VK_IMAGE_TYPE_2D -
VUID-VkImageCreateInfo-flags-00950
Ifflagscontains VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,imageTypemust be VK_IMAGE_TYPE_3D -
VUID-VkImageCreateInfo-flags-09403
Ifflagscontains VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,flagsmust not include VK_IMAGE_CREATE_SPARSE_ALIASED_BIT, VK_IMAGE_CREATE_SPARSE_BINDING_BIT, or VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT -
VUID-VkImageCreateInfo-flags-07755
Ifflagscontains VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT,imageTypemust be VK_IMAGE_TYPE_3D -
VUID-VkImageCreateInfo-imageType-10197
Ifflagscontains VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT and either themaintenance9feature is not enabled on the device orimage2DViewOf3DSparseis VK_FALSE ,flagsmust not include VK_IMAGE_CREATE_SPARSE_ALIASED_BIT, VK_IMAGE_CREATE_SPARSE_BINDING_BIT, or VK_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
IfimageTypeis VK_IMAGE_TYPE_1D, bothextent.heightandextent.depthmust be1 -
VUID-VkImageCreateInfo-imageType-00957
IfimageTypeis VK_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
IfimageTypeis VK_IMAGE_TYPE_3D,arrayLayersmust be1 -
VUID-VkImageCreateInfo-samples-02257
Ifsamplesis not VK_SAMPLE_COUNT_1_BIT, thenimageTypemust be VK_IMAGE_TYPE_2D,flagsmust not contain VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT,mipLevelsmust be equal to1, andimageCreateMaybeLinear(as defined in Image Creation Limits) must be VK_FALSE, -
VUID-VkImageCreateInfo-samples-02558
Ifsamplesis not VK_SAMPLE_COUNT_1_BIT,usagemust not contain VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT -
VUID-VkImageCreateInfo-usage-00963
Ifusageincludes VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, then bits other than VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, and VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT must not be set -
VUID-VkImageCreateInfo-usage-00964
Ifusageincludes VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT,extent.widthmust be less than or equal toVkPhysicalDeviceLimits::maxFramebufferWidth -
VUID-VkImageCreateInfo-usage-00965
Ifusageincludes VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT,extent.heightmust be less than or equal toVkPhysicalDeviceLimits::maxFramebufferHeight -
VUID-VkImageCreateInfo-fragmentDensityMapOffset-06514
If thefragmentDensityMapOffsetfeature is not enabled andusageincludes VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT,extent.widthmust be less than or equal to -
VUID-VkImageCreateInfo-fragmentDensityMapOffset-06515
If thefragmentDensityMapOffsetfeature is not enabled andusageincludes VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT,extent.heightmust be less than or equal to -
VUID-VkImageCreateInfo-usage-00966
Ifusageincludes VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT,usagemust also contain at least one of VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, or VK_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, andusagecontains VK_IMAGE_USAGE_STORAGE_BIT,samplesmust be VK_SAMPLE_COUNT_1_BIT -
VUID-VkImageCreateInfo-flags-00969
If thesparseBindingfeature is not enabled,flagsmust not contain VK_IMAGE_CREATE_SPARSE_BINDING_BIT -
VUID-VkImageCreateInfo-flags-01924
If thesparseResidencyAliasedfeature is not enabled,flagsmust not contain VK_IMAGE_CREATE_SPARSE_ALIASED_BIT -
VUID-VkImageCreateInfo-tiling-04121
Iftilingis VK_IMAGE_TILING_LINEAR,flagsmust not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT -
VUID-VkImageCreateInfo-imageType-00970
IfimageTypeis VK_IMAGE_TYPE_1D,flagsmust not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT -
VUID-VkImageCreateInfo-imageType-00971
If thesparseResidencyImage2Dfeature is not enabled, andimageTypeis VK_IMAGE_TYPE_2D,flagsmust not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT -
VUID-VkImageCreateInfo-imageType-00972
If thesparseResidencyImage3Dfeature is not enabled, andimageTypeis VK_IMAGE_TYPE_3D,flagsmust not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT -
VUID-VkImageCreateInfo-imageType-00973
If thesparseResidency2Samplesfeature is not enabled,imageTypeis VK_IMAGE_TYPE_2D, andsamplesis VK_SAMPLE_COUNT_2_BIT,flagsmust not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT -
VUID-VkImageCreateInfo-imageType-00974
If thesparseResidency4Samplesfeature is not enabled,imageTypeis VK_IMAGE_TYPE_2D, andsamplesis VK_SAMPLE_COUNT_4_BIT,flagsmust not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT -
VUID-VkImageCreateInfo-imageType-00975
If thesparseResidency8Samplesfeature is not enabled,imageTypeis VK_IMAGE_TYPE_2D, andsamplesis VK_SAMPLE_COUNT_8_BIT,flagsmust not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT -
VUID-VkImageCreateInfo-imageType-00976
If thesparseResidency16Samplesfeature is not enabled,imageTypeis VK_IMAGE_TYPE_2D, andsamplesis VK_SAMPLE_COUNT_16_BIT,flagsmust not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT -
VUID-VkImageCreateInfo-flags-00987
Ifflagscontains VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT or VK_IMAGE_CREATE_SPARSE_ALIASED_BIT, it must also contain VK_IMAGE_CREATE_SPARSE_BINDING_BIT -
VUID-VkImageCreateInfo-None-01925
If any of the bits VK_IMAGE_CREATE_SPARSE_BINDING_BIT, VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT, or VK_IMAGE_CREATE_SPARSE_ALIASED_BIT are set, VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT must not also be set -
VUID-VkImageCreateInfo-flags-01890
If theprotectedMemoryfeature is not enabled,flagsmust not contain VK_IMAGE_CREATE_PROTECTED_BIT -
VUID-VkImageCreateInfo-None-01891
If any of the bits VK_IMAGE_CREATE_SPARSE_BINDING_BIT, VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT, or VK_IMAGE_CREATE_SPARSE_ALIASED_BIT are set, VK_IMAGE_CREATE_PROTECTED_BIT must 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 contain VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT -
VUID-VkImageCreateInfo-flags-02259
Ifflagscontains VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT, thenmipLevelsmust be one,arrayLayersmust be one,imageTypemust be VK_IMAGE_TYPE_2D, andimageCreateMaybeLinear(as defined in Image Creation Limits) must be VK_FALSE -
VUID-VkImageCreateInfo-flags-01572
Ifflagscontains VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, thenformatmust be a compressed image format -
VUID-VkImageCreateInfo-flags-01573
Ifflagscontains VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, thenflagsmust also contain VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT -
VUID-VkImageCreateInfo-initialLayout-00993
initialLayoutmust be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_ZERO_INITIALIZED_EXT or VK_IMAGE_LAYOUT_PREINITIALIZED -
VUID-VkImageCreateInfo-pNext-01443
If thepNextchain includes a VkExternalMemoryImageCreateInfo orVkExternalMemoryImageCreateInfoNVstructure whosehandleTypesmember is not0,initialLayoutmust be VK_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 be VK_SAMPLE_COUNT_1_BIT -
VUID-VkImageCreateInfo-format-06412
If the imageformatis one of the formats that require a sampler Y′CBCR conversion,imageTypemust be VK_IMAGE_TYPE_2D -
VUID-VkImageCreateInfo-imageCreateFormatFeatures-02260
Ifformatis a multi-planar format, and ifimageCreateFormatFeatures(as defined in Image Creation Limits) does not contain VK_FORMAT_FEATURE_DISJOINT_BIT, thenflagsmust not contain VK_IMAGE_CREATE_DISJOINT_BIT -
VUID-VkImageCreateInfo-format-01577
Ifformatis not a multi-planar format, andflagsdoes not include VK_IMAGE_CREATE_ALIAS_BIT,flagsmust not contain VK_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_PVRTC1_*_IMGformats,extent.widthmust be a power of 2 -
VUID-VkImageCreateInfo-format-09584
Ifformatis one of theVK_FORMAT_PVRTC1_*_IMGformats,extent.heightmust be a power of 2 -
VUID-VkImageCreateInfo-tiling-02261
Iftilingis VK_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 be VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT -
VUID-VkImageCreateInfo-tiling-02353
Iftilingis VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT andflagscontains VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT, then thepNextchain must include a VkImageFormatListCreateInfo structure with non-zeroviewFormatCount -
VUID-VkImageCreateInfo-flags-01533
Ifflagscontains VK_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 includes VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID,imageTypemust be VK_IMAGE_TYPE_2D -
VUID-VkImageCreateInfo-pNext-02394
If thepNextchain includes a VkExternalMemoryImageCreateInfo structure whosehandleTypesmember includes VK_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 include VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT -
VUID-VkImageCreateInfo-pNext-02397
If thepNextchain includes a VkExternalFormatANDROID structure whoseexternalFormatmember is not0,usagemust not include any usages except VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, or VK_IMAGE_USAGE_SAMPLED_BIT -
VUID-VkImageCreateInfo-pNext-09457
If thepNextchain includes a VkExternalFormatANDROID structure whoseexternalFormatmember is not0, andexternalFormatResolvefeature is not enabled,usagemust not include VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT or VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT -
VUID-VkImageCreateInfo-pNext-02398
If thepNextchain includes a VkExternalFormatANDROID structure whoseexternalFormatmember is not0,tilingmust be VK_IMAGE_TILING_OPTIMAL -
VUID-VkImageCreateInfo-pNext-08951
If thepNextchain includes a VkExternalMemoryImageCreateInfo structure whosehandleTypesmember includes VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX,imageTypemust be VK_IMAGE_TYPE_2D -
VUID-VkImageCreateInfo-pNext-08952
If thepNextchain includes a VkExternalMemoryImageCreateInfo structure whosehandleTypesmember includes VK_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 include VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT -
VUID-VkImageCreateInfo-pNext-08954
If thepNextchain includes a VkExternalFormatQNX structure whoseexternalFormatmember is not0,usagemust not include any usages except VK_IMAGE_USAGE_SAMPLED_BIT -
VUID-VkImageCreateInfo-pNext-08955
If thepNextchain includes a VkExternalFormatQNX structure whoseexternalFormatmember is not0,tilingmust be VK_IMAGE_TILING_OPTIMAL -
VUID-VkImageCreateInfo-format-02795
Ifformatis a depth-stencil format,usageincludes VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, and thepNextchain includes a VkImageStencilUsageCreateInfo structure, then its VkImageStencilUsageCreateInfo::stencilUsagemember must also include VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT -
VUID-VkImageCreateInfo-format-02796
Ifformatis a depth-stencil format,usagedoes not include VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, and thepNextchain includes a VkImageStencilUsageCreateInfo structure, then its VkImageStencilUsageCreateInfo::stencilUsagemember must also not include VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT -
VUID-VkImageCreateInfo-format-02797
Ifformatis a depth-stencil format,usageincludes VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, and thepNextchain includes a VkImageStencilUsageCreateInfo structure, then its VkImageStencilUsageCreateInfo::stencilUsagemember must also include VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT -
VUID-VkImageCreateInfo-format-02798
Ifformatis a depth-stencil format,usagedoes not include VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, and thepNextchain includes a VkImageStencilUsageCreateInfo structure, then its VkImageStencilUsageCreateInfo::stencilUsagemember must also not include VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT -
VUID-VkImageCreateInfo-Format-02536
IfFormatis a depth-stencil format and thepNextchain includes a VkImageStencilUsageCreateInfo structure with itsstencilUsagemember including VK_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 including VK_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 itsstencilUsageincluding VK_IMAGE_USAGE_STORAGE_BIT,samplesmust be VK_SAMPLE_COUNT_1_BIT -
VUID-VkImageCreateInfo-flags-02050
Ifflagscontains VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV,imageTypemust be VK_IMAGE_TYPE_2D or VK_IMAGE_TYPE_3D -
VUID-VkImageCreateInfo-flags-02051
Ifflagscontains VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV, it must not contain VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT and theformatmust not be a depth/stencil format -
VUID-VkImageCreateInfo-flags-02052
Ifflagscontains VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV andimageTypeis VK_IMAGE_TYPE_2D,extent.widthandextent.heightmust be greater than1 -
VUID-VkImageCreateInfo-flags-02053
Ifflagscontains VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV andimageTypeis VK_IMAGE_TYPE_3D,extent.width,extent.height, andextent.depthmust be greater than1 -
VUID-VkImageCreateInfo-imageType-02082
Ifusageincludes VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,imageTypemust be VK_IMAGE_TYPE_2D -
VUID-VkImageCreateInfo-samples-02083
Ifusageincludes VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,samplesmust be VK_SAMPLE_COUNT_1_BIT -
VUID-VkImageCreateInfo-shadingRateImage-07727
If theshadingRateImagefeature is enabled andusageincludes VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV,tilingmust be VK_IMAGE_TILING_OPTIMAL -
VUID-VkImageCreateInfo-flags-02565
Ifflagscontains VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT,tilingmust be VK_IMAGE_TILING_OPTIMAL -
VUID-VkImageCreateInfo-flags-02566
Ifflagscontains VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT,imageTypemust be VK_IMAGE_TYPE_2D -
VUID-VkImageCreateInfo-flags-02567
Ifflagscontains VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT,flagsmust not contain VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT -
VUID-VkImageCreateInfo-flags-02568
Ifflagscontains VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT,mipLevelsmust be1 -
VUID-VkImageCreateInfo-usage-04992
Ifusageincludes VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI,tilingmust be VK_IMAGE_TILING_LINEAR -
VUID-VkImageCreateInfo-imageView2DOn3DImage-04459
If theVK_KHR_portability_subsetextension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::imageView2DOn3DImageis VK_FALSE,flagsmust not contain VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT -
VUID-VkImageCreateInfo-multisampleArrayImage-04460
If theVK_KHR_portability_subsetextension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::multisampleArrayImageis VK_FALSE, andsamplesis not VK_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, ifflagscontains VK_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 andflagscontains VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT and VkImageFormatListCreateInfo::viewFormatCountis not zero, then each format in VkImageFormatListCreateInfo::pViewFormatsmust be compatible with the VkFormat for the plane of the image format -
VUID-VkImageCreateInfo-flags-04738
Ifflagsdoes not contain VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT and thepNextchain includes a VkImageFormatListCreateInfo structure, then VkImageFormatListCreateInfo::viewFormatCountmust be0or1 -
VUID-VkImageCreateInfo-usage-04815
Ifusageincludes VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR, VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR, or VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR, andflagsdoes not include VK_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
Ifusageincludes VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR, VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR, or VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR, andflagsdoes not include VK_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
Ifflagsincludes VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR, thenvideoMaintenance1must be enabled -
VUID-VkImageCreateInfo-flags-08329
Ifflagsincludes VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR andusagedoes not include VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR, thenusagemust not include VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR -
VUID-VkImageCreateInfo-flags-08331
Ifflagsincludes VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR, thenusagemust not include VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR, VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR, or VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR -
VUID-VkImageCreateInfo-pNext-06811
If thepNextchain includes a VkVideoProfileListInfoKHR structure withprofileCountgreater than0, thensupportedVideoFormatmust be VK_TRUE -
VUID-VkImageCreateInfo-pNext-10784
If thepNextchain includes a VkVideoProfileListInfoKHR structure and for any element of itspProfilesmembervideoCodecOperationis VK_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 itspProfilesmembervideoCodecOperationis VK_VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR, then thevideoEncodeAV1feature must be enabled -
VUID-VkImageCreateInfo-pNext-10920
If thepNextchain includes a VkVideoEncodeProfileRgbConversionInfoVALVE structure, then thevideoEncodeRgbConversionfeature must be enabled -
VUID-VkImageCreateInfo-usage-10251
Ifusageincludes VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR or VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR, then thevideoEncodeQuantizationMapfeature must be enabled -
VUID-VkImageCreateInfo-usage-10252
Ifusageincludes VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR or VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR,imageTypemust be VK_IMAGE_TYPE_2D -
VUID-VkImageCreateInfo-usage-10253
Ifusageincludes VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR or VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR,samplesmust be VK_SAMPLE_COUNT_1_BIT -
VUID-VkImageCreateInfo-usage-10254
Ifusageincludes VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR or VK_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
Ifusageincludes VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR, then VkVideoEncodeCapabilitiesKHR::flagsmust include VK_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
Ifusageincludes VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR, then VkVideoEncodeCapabilitiesKHR::flagsmust include VK_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
Ifusageincludes VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR or VK_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
Ifusageincludes VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR or VK_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 contain VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT -
VUID-VkImageCreateInfo-flags-06883
Ifflagscontains VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT,samplesmust be VK_SAMPLE_COUNT_1_BIT -
VUID-VkImageCreateInfo-pNext-06743
If thepNextchain includes a VkImageCompressionControlEXT structure,formatis a multi-planar format, and VkImageCompressionControlEXT::flagsincludes VK_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::flagsincludes VK_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
Ifflagsincludes VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT, thedescriptorBufferCaptureReplayfeature must be enabled -
VUID-VkImageCreateInfo-pNext-08105
If thepNextchain includes a VkOpaqueCaptureDescriptorDataCreateInfoEXT structure,flagsmust contain VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT -
VUID-VkImageCreateInfo-pNext-06783
If thepNextchain includes a VkExportMetalObjectCreateInfoEXT structure, itsexportObjectTypemember must be either VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT or VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT -
VUID-VkImageCreateInfo-pNext-06784
If thepNextchain includes a VkImportMetalTextureInfoEXT structure itsplanemember must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_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 be VK_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 be VK_IMAGE_ASPECT_PLANE_2_BIT -
VUID-VkImageCreateInfo-imageCreateFormatFeatures-09048
IfimageCreateFormatFeatures(as defined in Image Creation Limits) does not contain VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT, thenusagemust not contain VK_IMAGE_USAGE_HOST_TRANSFER_BIT -
VUID-VkImageCreateInfo-usage-10245
Ifusageincludes VK_IMAGE_USAGE_HOST_TRANSFER_BIT, then thehostImageCopyfeature must be enabled -
VUID-VkImageCreateInfo-tileMemoryHeap-10766
If thetileMemoryHeapfeature is not enabled,usagemust not include VK_IMAGE_USAGE_TILE_MEMORY_BIT_QCOM -
VUID-VkImageCreateInfo-pNext-09653
If thepNextchain contains a VkImageAlignmentControlCreateInfoMESA structure,tilingmust be VK_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 then VK_IMAGE_USAGE_TENSOR_ALIASING_BIT_ARM must not be set inusage -
VUID-VkImageCreateInfo-None-12279
If Vulkan 1.3 is not supported and theycbcr2plane444Formatsfeature is not enabled,formatmust not be VK_FORMAT_G8_B8R8_2PLANE_444_UNORM, VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16, VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16, or VK_FORMAT_G16_B16R16_2PLANE_444_UNORM
-
VUID-VkImageCreateInfo-sType-sType
sTypemust be VK_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, VkExternalFormatOHOS, 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.