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_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_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_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-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_EXT,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_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-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_EXT, then thehostImageCopyfeature must be enabled -
VUID-VkImageCreateInfo-tileMemoryHeap-10734
If thetileMemoryHeapfeature is not enabled,usagemust not includeVK_IMAGE_USAGE_TILE_MEMORY_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-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.