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
-
sType
is a VkStructureType value identifying this structure. -
pNext
isNULL
or a pointer to a structure extending this structure. -
flags
is a bitmask of VkImageCreateFlagBits describing additional parameters of the image. -
imageType
is 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. -
format
is a VkFormat describing the format and type of the texel blocks that will be contained in the image. -
extent
is a VkExtent3D describing the number of data elements in each dimension of the base level. -
mipLevels
describes the number of levels of detail available for minified sampling of the image. -
arrayLayers
is the number of layers in the image. -
samples
is a VkSampleCountFlagBits value specifying the number of samples per texel. -
tiling
is a VkImageTiling value specifying the tiling arrangement of the texel blocks in memory. -
usage
is a bitmask of VkImageUsageFlagBits describing the intended usage of the image. -
sharingMode
is a VkSharingMode value specifying the sharing mode of the image when it will be accessed by multiple queue families. -
queueFamilyIndexCount
is the number of entries in thepQueueFamilyIndices
array. -
pQueueFamilyIndices
is a pointer to an array of queue families that will access this image. It is ignored ifsharingMode
is notVK_SHARING_MODE_CONCURRENT
. -
initialLayout
is 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:
-
imageType
isVK_IMAGE_TYPE_2D
-
format
is not a depth/stencil format -
mipLevels
is 1 -
arrayLayers
is 1 -
samples
isVK_SAMPLE_COUNT_1_BIT
-
usage
only includesVK_IMAGE_USAGE_TRANSFER_SRC_BIT
and/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:
-
imageType
isVK_IMAGE_TYPE_2D
-
mipLevels
is 1 -
arrayLayers
is 1, unless theycbcrImageArrays
feature is enabled, or otherwise indicated by VkImageFormatProperties::maxArrayLayers
, as returned by vkGetPhysicalDeviceImageFormatProperties -
samples
isVK_SAMPLE_COUNT_1_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
VkPhysicalDeviceHostImageCopyPropertiesEXT::identicalMemoryTypeRequirements
,
usage of VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT
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
tiling
is notVK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT
, thenimageCreateDrmFormatModifiers
is empty. -
If VkImageCreateInfo::
pNext
contains VkImageDrmFormatModifierExplicitCreateInfoEXT, thenimageCreateDrmFormatModifiers
contains exactly one modifier, VkImageDrmFormatModifierExplicitCreateInfoEXT::drmFormatModifier
. -
If VkImageCreateInfo::
pNext
contains VkImageDrmFormatModifierListCreateInfoEXT, thenimageCreateDrmFormatModifiers
contains the entire array VkImageDrmFormatModifierListCreateInfoEXT::pDrmFormatModifiers
.
-
-
Let
VkBool32 imageCreateMaybeLinear
indicate if the resultant image may be linear.-
If
tiling
isVK_IMAGE_TILING_LINEAR
, thenimageCreateMaybeLinear
isVK_TRUE
. -
If
tiling
isVK_IMAGE_TILING_OPTIMAL
, thenimageCreateMaybeLinear
isVK_FALSE
. -
If
tiling
isVK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT
, thenimageCreateMaybeLinear
isVK_TRUE
if and only ifimageCreateDrmFormatModifiers
containsDRM_FORMAT_MOD_LINEAR
.
-
-
Let
VkFormatFeatureFlags imageCreateFormatFeatures
be the set of valid format features available during image creation.-
If
tiling
isVK_IMAGE_TILING_LINEAR
, thenimageCreateFormatFeatures
is the value of VkFormatProperties::linearTilingFeatures
found by calling vkGetPhysicalDeviceFormatProperties with parameterformat
equal to VkImageCreateInfo::format
. -
If
tiling
isVK_IMAGE_TILING_OPTIMAL
, and if thepNext
chain includes no VkExternalFormatANDROID or VkExternalFormatQNX structure with non-zeroexternalFormat
, thenimageCreateFormatFeatures
is the value of VkFormatProperties::optimalTilingFeatures
found by calling vkGetPhysicalDeviceFormatProperties with parameterformat
equal to VkImageCreateInfo::format
. -
If
tiling
isVK_IMAGE_TILING_OPTIMAL
, and if thepNext
chain includes a VkExternalFormatANDROID structure with non-zeroexternalFormat
, thenimageCreateFormatFeatures
is the value of VkAndroidHardwareBufferFormatPropertiesANDROID::formatFeatures
obtained by vkGetAndroidHardwareBufferPropertiesANDROID with a matchingexternalFormat
value. -
If
tiling
isVK_IMAGE_TILING_OPTIMAL
, and if thepNext
chain includes a VkExternalFormatQNX structure with non-zeroexternalFormat
, thenimageCreateFormatFeatures
is the value of VkScreenBufferFormatPropertiesQNX::formatFeatures
obtained by vkGetScreenBufferPropertiesQNX with a matchingexternalFormat
value. -
If the
pNext
chain includes a VkBufferCollectionImageCreateInfoFUCHSIA structure, thenimageCreateFormatFeatures
is the value of VkBufferCollectionPropertiesFUCHSIA::formatFeatures
found by calling vkGetBufferCollectionPropertiesFUCHSIA with a parametercollection
equal to VkBufferCollectionImageCreateInfoFUCHSIA::collection
-
If
tiling
isVK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT
, then the value ofimageCreateFormatFeatures
is found by calling vkGetPhysicalDeviceFormatProperties2 with VkImageFormatProperties::format
equal to VkImageCreateInfo::format
and with VkDrmFormatModifierPropertiesListEXT chained into VkFormatProperties2; by collecting all members of the returned array VkDrmFormatModifierPropertiesListEXT::pDrmFormatModifierProperties
whosedrmFormatModifier
belongs toimageCreateDrmFormatModifiers
; and by taking the bitwise intersection, over the collected array members, ofdrmFormatModifierTilingFeatures
. (The resultantimageCreateFormatFeatures
may be empty).
-
-
Let
VkImageFormatProperties2 imageCreateImageFormatPropertiesList[]
be defined as follows.-
If VkImageCreateInfo::
pNext
contains no VkExternalFormatANDROID or VkExternalFormatQNX structure with non-zeroexternalFormat
, thenimageCreateImageFormatPropertiesList
is the list of structures obtained by calling vkGetPhysicalDeviceImageFormatProperties2, possibly multiple times, as follows:-
The parameters VkPhysicalDeviceImageFormatInfo2::
format
,imageType
,tiling
,usage
, andflags
must be equal to those in VkImageCreateInfo. -
If VkImageCreateInfo::
pNext
contains a VkExternalMemoryImageCreateInfo structure whosehandleTypes
is not0
, then VkPhysicalDeviceImageFormatInfo2::pNext
must contain a VkPhysicalDeviceExternalImageFormatInfo structure whosehandleType
is not0
; and vkGetPhysicalDeviceImageFormatProperties2 must be called for each handle type in VkExternalMemoryImageCreateInfo::handleTypes
, successively setting VkPhysicalDeviceExternalImageFormatInfo::handleType
on each call. -
If VkImageCreateInfo::
pNext
contains no VkExternalMemoryImageCreateInfo structure, or contains a structure whosehandleTypes
is0
, then VkPhysicalDeviceImageFormatInfo2::pNext
must either contain no VkPhysicalDeviceExternalImageFormatInfo structure, or contain a structure whosehandleType
is0
. -
If VkImageCreateInfo::
pNext
contains a VkVideoProfileListInfoKHR structure then VkPhysicalDeviceImageFormatInfo2::pNext
must also contain the same VkVideoProfileListInfoKHR structure on each call. -
If
tiling
isVK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT
, then:-
VkPhysicalDeviceImageFormatInfo2::
pNext
must contain a VkPhysicalDeviceImageDrmFormatModifierInfoEXT structure wheresharingMode
is equal to VkImageCreateInfo::sharingMode
; -
if
sharingMode
isVK_SHARING_MODE_CONCURRENT
, thenqueueFamilyIndexCount
andpQueueFamilyIndices
must be equal to those in VkImageCreateInfo; -
if
flags
containsVK_IMAGE_CREATE_MUTABLE_FORMAT_BIT
, then the VkImageFormatListCreateInfo structure included in thepNext
chain of VkPhysicalDeviceImageFormatInfo2 must be equivalent to the one included in thepNext
chain of VkImageCreateInfo; -
if VkImageCreateInfo::
pNext
contains a VkImageCompressionControlEXT structure, then the VkPhysicalDeviceImageFormatInfo2::pNext
chain must contain an equivalent structure; -
vkGetPhysicalDeviceImageFormatProperties2 must be called for each modifier in
imageCreateDrmFormatModifiers
, successively setting VkPhysicalDeviceImageDrmFormatModifierInfoEXT::drmFormatModifier
on each call.
-
-
If
tiling
is notVK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT
, then VkPhysicalDeviceImageFormatInfo2::pNext
must contain no VkPhysicalDeviceImageDrmFormatModifierInfoEXT structure. -
If any call to vkGetPhysicalDeviceImageFormatProperties2 returns an error, then
imageCreateImageFormatPropertiesList
is defined to be the empty list.
-
-
If VkImageCreateInfo::
pNext
contains a VkExternalFormatANDROID structure with non-zeroexternalFormat
, thenimageCreateImageFormatPropertiesList
contains a single element where:-
VkImageFormatProperties
::maxMipLevels
is ⌊log2(max(extent.width
,extent.height
,extent.depth
))⌋ + 1. -
VkImageFormatProperties
::maxArrayLayers
is VkPhysicalDeviceLimits::maxImageArrayLayers
. -
Each component of
VkImageFormatProperties
::maxExtent
is VkPhysicalDeviceLimits::maxImageDimension2D
. -
VkImageFormatProperties
::sampleCounts
contains exactlyVK_SAMPLE_COUNT_1_BIT
.
-
-
-
Let
uint32_t imageCreateMaxMipLevels
be the minimum value of VkImageFormatProperties::maxMipLevels
inimageCreateImageFormatPropertiesList
. The value is undefined ifimageCreateImageFormatPropertiesList
is empty. -
Let
uint32_t imageCreateMaxArrayLayers
be the minimum value of VkImageFormatProperties::maxArrayLayers
inimageCreateImageFormatPropertiesList
. The value is undefined ifimageCreateImageFormatPropertiesList
is empty. -
Let
VkExtent3D imageCreateMaxExtent
be the component-wise minimum over all VkImageFormatProperties::maxExtent
values inimageCreateImageFormatPropertiesList
. The value is undefined ifimageCreateImageFormatPropertiesList
is empty. -
Let
VkSampleCountFlags imageCreateSampleCounts
be the intersection of each VkImageFormatProperties::sampleCounts
inimageCreateImageFormatPropertiesList
. The value is undefined ifimageCreateImageFormatPropertiesList
is empty. -
Let
VkVideoFormatPropertiesKHR videoFormatProperties[]
be defined as follows.-
If VkImageCreateInfo::
pNext
contains a VkVideoProfileListInfoKHR structure, thenvideoFormatProperties
is the list of structures obtained by calling vkGetPhysicalDeviceVideoFormatPropertiesKHR with VkPhysicalDeviceVideoFormatInfoKHR::imageUsage
equal to theusage
member of VkImageCreateInfo and VkPhysicalDeviceVideoFormatInfoKHR::pNext
containing the same VkVideoProfileListInfoKHR structure chained to VkImageCreateInfo. -
If VkImageCreateInfo::
pNext
contains no VkVideoProfileListInfoKHR structure, thenvideoFormatProperties
is an empty list.
-
-
Let
VkBool32 supportedVideoFormat
indicate if the image parameters are supported by the specified video profiles.-
supportedVideoFormat
isVK_TRUE
if there exists an element in thevideoFormatProperties
list for which all of the following conditions are true:-
VkImageCreateInfo::
format
equals VkVideoFormatPropertiesKHR::format
. -
VkImageCreateInfo::
flags
only contains bits also set in VkVideoFormatPropertiesKHR::imageCreateFlags
. -
VkImageCreateInfo::
imageType
equals VkVideoFormatPropertiesKHR::imageType
. -
VkImageCreateInfo::
tiling
equals VkVideoFormatPropertiesKHR::imageTiling
. -
VkImageCreateInfo::
usage
only contains bits also set in VkVideoFormatPropertiesKHR::imageUsageFlags
.
-
-
Otherwise
supportedVideoFormat
isVK_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
IfsharingMode
isVK_SHARING_MODE_CONCURRENT
,pQueueFamilyIndices
must be a valid pointer to an array ofqueueFamilyIndexCount
uint32_t
values -
VUID-VkImageCreateInfo-sharingMode-00942
IfsharingMode
isVK_SHARING_MODE_CONCURRENT
,queueFamilyIndexCount
must be greater than1
-
VUID-VkImageCreateInfo-sharingMode-01420
IfsharingMode
isVK_SHARING_MODE_CONCURRENT
, each element ofpQueueFamilyIndices
must be unique and must be less thanpQueueFamilyPropertyCount
returned by either vkGetPhysicalDeviceQueueFamilyProperties or vkGetPhysicalDeviceQueueFamilyProperties2 for thephysicalDevice
that was used to createdevice
-
VUID-VkImageCreateInfo-pNext-01974
If thepNext
chain includes a VkExternalFormatANDROID structure, and itsexternalFormat
member is non-zero theformat
must beVK_FORMAT_UNDEFINED
-
VUID-VkImageCreateInfo-pNext-01975
If thepNext
chain does not include a VkExternalFormatANDROID structure, or does and itsexternalFormat
member is0
, theformat
must not beVK_FORMAT_UNDEFINED
-
VUID-VkImageCreateInfo-extent-00944
extent.width
must be greater than0
-
VUID-VkImageCreateInfo-extent-00945
extent.height
must be greater than0
-
VUID-VkImageCreateInfo-extent-00946
extent.depth
must be greater than0
-
VUID-VkImageCreateInfo-mipLevels-00947
mipLevels
must be greater than0
-
VUID-VkImageCreateInfo-arrayLayers-00948
arrayLayers
must be greater than0
-
VUID-VkImageCreateInfo-flags-00949
Ifflags
containsVK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT
,imageType
must beVK_IMAGE_TYPE_2D
-
VUID-VkImageCreateInfo-flags-08865
Ifflags
containsVK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT
,extent.width
andextent.height
must be equal -
VUID-VkImageCreateInfo-flags-08866
Ifflags
containsVK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT
,arrayLayers
must be greater than or equal to 6 -
VUID-VkImageCreateInfo-flags-02557
Ifflags
containsVK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT
,imageType
must beVK_IMAGE_TYPE_2D
-
VUID-VkImageCreateInfo-flags-00950
Ifflags
containsVK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT
,imageType
must beVK_IMAGE_TYPE_3D
-
VUID-VkImageCreateInfo-flags-07755
Ifflags
containsVK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT
,imageType
must beVK_IMAGE_TYPE_3D
-
VUID-VkImageCreateInfo-extent-02252
extent.width
must be less than or equal toimageCreateMaxExtent.width
(as defined in Image Creation Limits) -
VUID-VkImageCreateInfo-extent-02253
extent.height
must be less than or equal toimageCreateMaxExtent.height
(as defined in Image Creation Limits) -
VUID-VkImageCreateInfo-extent-02254
extent.depth
must be less than or equal toimageCreateMaxExtent.depth
(as defined in Image Creation Limits) -
VUID-VkImageCreateInfo-imageType-00956
IfimageType
isVK_IMAGE_TYPE_1D
, bothextent.height
andextent.depth
must be1
-
VUID-VkImageCreateInfo-imageType-00957
IfimageType
isVK_IMAGE_TYPE_2D
,extent.depth
must be1
-
VUID-VkImageCreateInfo-mipLevels-00958
mipLevels
must 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
mipLevels
must be less than or equal toimageCreateMaxMipLevels
(as defined in Image Creation Limits) -
VUID-VkImageCreateInfo-arrayLayers-02256
arrayLayers
must be less than or equal toimageCreateMaxArrayLayers
(as defined in Image Creation Limits) -
VUID-VkImageCreateInfo-imageType-00961
IfimageType
isVK_IMAGE_TYPE_3D
,arrayLayers
must be1
-
VUID-VkImageCreateInfo-samples-02257
Ifsamples
is notVK_SAMPLE_COUNT_1_BIT
, thenimageType
must beVK_IMAGE_TYPE_2D
,flags
must not containVK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT
,mipLevels
must be equal to1
, andimageCreateMaybeLinear
(as defined in Image Creation Limits) must beVK_FALSE
, -
VUID-VkImageCreateInfo-samples-02558
Ifsamples
is notVK_SAMPLE_COUNT_1_BIT
,usage
must not containVK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT
-
VUID-VkImageCreateInfo-usage-00963
Ifusage
includesVK_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_BIT
must not be set -
VUID-VkImageCreateInfo-usage-00964
Ifusage
includesVK_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.width
must be less than or equal toVkPhysicalDeviceLimits
::maxFramebufferWidth
-
VUID-VkImageCreateInfo-usage-00965
Ifusage
includesVK_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.height
must be less than or equal toVkPhysicalDeviceLimits
::maxFramebufferHeight
-
VUID-VkImageCreateInfo-fragmentDensityMapOffset-06514
If thefragmentDensityMapOffset
feature is not enabled andusage
includesVK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT
,extent.width
must be less than or equal to ⌈minFragmentDensityTexelSizewidthmaxFramebufferWidth⌉ -
VUID-VkImageCreateInfo-fragmentDensityMapOffset-06515
If thefragmentDensityMapOffset
feature is not enabled andusage
includesVK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT
,extent.height
must be less than or equal to ⌈minFragmentDensityTexelSizeheightmaxFramebufferHeight⌉ -
VUID-VkImageCreateInfo-usage-00966
Ifusage
includesVK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT
,usage
must 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
samples
must be a bit value that is set inimageCreateSampleCounts
(as defined in Image Creation Limits) -
VUID-VkImageCreateInfo-usage-00968
If theshaderStorageImageMultisample
feature is not enabled, andusage
containsVK_IMAGE_USAGE_STORAGE_BIT
,samples
must beVK_SAMPLE_COUNT_1_BIT
-
VUID-VkImageCreateInfo-flags-00969
If thesparseBinding
feature is not enabled,flags
must not containVK_IMAGE_CREATE_SPARSE_BINDING_BIT
-
VUID-VkImageCreateInfo-flags-01924
If thesparseResidencyAliased
feature is not enabled,flags
must not containVK_IMAGE_CREATE_SPARSE_ALIASED_BIT
-
VUID-VkImageCreateInfo-tiling-04121
Iftiling
isVK_IMAGE_TILING_LINEAR
,flags
must not containVK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
-
VUID-VkImageCreateInfo-imageType-00970
IfimageType
isVK_IMAGE_TYPE_1D
,flags
must not containVK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
-
VUID-VkImageCreateInfo-imageType-00971
If thesparseResidencyImage2D
feature is not enabled, andimageType
isVK_IMAGE_TYPE_2D
,flags
must not containVK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
-
VUID-VkImageCreateInfo-imageType-00972
If thesparseResidencyImage3D
feature is not enabled, andimageType
isVK_IMAGE_TYPE_3D
,flags
must not containVK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
-
VUID-VkImageCreateInfo-imageType-00973
If thesparseResidency2Samples
feature is not enabled,imageType
isVK_IMAGE_TYPE_2D
, andsamples
isVK_SAMPLE_COUNT_2_BIT
,flags
must not containVK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
-
VUID-VkImageCreateInfo-imageType-00974
If thesparseResidency4Samples
feature is not enabled,imageType
isVK_IMAGE_TYPE_2D
, andsamples
isVK_SAMPLE_COUNT_4_BIT
,flags
must not containVK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
-
VUID-VkImageCreateInfo-imageType-00975
If thesparseResidency8Samples
feature is not enabled,imageType
isVK_IMAGE_TYPE_2D
, andsamples
isVK_SAMPLE_COUNT_8_BIT
,flags
must not containVK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
-
VUID-VkImageCreateInfo-imageType-00976
If thesparseResidency16Samples
feature is not enabled,imageType
isVK_IMAGE_TYPE_2D
, andsamples
isVK_SAMPLE_COUNT_16_BIT
,flags
must not containVK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
-
VUID-VkImageCreateInfo-flags-00987
Ifflags
containsVK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
orVK_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_BIT
are set,VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT
must not also be set -
VUID-VkImageCreateInfo-flags-01890
If theprotectedMemory
feature is not enabled,flags
must 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_BIT
are set,VK_IMAGE_CREATE_PROTECTED_BIT
must not also be set -
VUID-VkImageCreateInfo-pNext-00988
If thepNext
chain includes a VkExternalMemoryImageCreateInfoNV structure, it must not contain a VkExternalMemoryImageCreateInfo structure -
VUID-VkImageCreateInfo-pNext-00990
If thepNext
chain includes a VkExternalMemoryImageCreateInfo structure, itshandleTypes
member must only contain bits that are also in VkExternalImageFormatProperties::externalMemoryProperties.compatibleHandleTypes
, as returned by vkGetPhysicalDeviceImageFormatProperties2 withformat
,imageType
,tiling
,usage
, andflags
equal to those in this structure, and with a VkPhysicalDeviceExternalImageFormatInfo structure included in thepNext
chain, with ahandleType
equal to any one of the handle types specified in VkExternalMemoryImageCreateInfo::handleTypes
-
VUID-VkImageCreateInfo-pNext-00991
If thepNext
chain includes a VkExternalMemoryImageCreateInfoNV structure, itshandleTypes
member must only contain bits that are also in VkExternalImageFormatPropertiesNV::externalMemoryProperties.compatibleHandleTypes
, as returned by vkGetPhysicalDeviceExternalImageFormatPropertiesNV withformat
,imageType
,tiling
,usage
, andflags
equal to those in this structure, and withexternalHandleType
equal to any one of the handle types specified in VkExternalMemoryImageCreateInfoNV::handleTypes
-
VUID-VkImageCreateInfo-physicalDeviceCount-01421
If the logical device was created with VkDeviceGroupDeviceCreateInfo::physicalDeviceCount
equal to 1,flags
must not containVK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT
-
VUID-VkImageCreateInfo-flags-02259
Ifflags
containsVK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT
, thenmipLevels
must be one,arrayLayers
must be one,imageType
must beVK_IMAGE_TYPE_2D
. andimageCreateMaybeLinear
(as defined in Image Creation Limits) must beVK_FALSE
-
VUID-VkImageCreateInfo-flags-01572
Ifflags
containsVK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT
, thenformat
must be a compressed image format -
VUID-VkImageCreateInfo-flags-01573
Ifflags
containsVK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT
, thenflags
must also containVK_IMAGE_CREATE_MUTABLE_FORMAT_BIT
-
VUID-VkImageCreateInfo-initialLayout-00993
initialLayout
must beVK_IMAGE_LAYOUT_UNDEFINED
orVK_IMAGE_LAYOUT_PREINITIALIZED
-
VUID-VkImageCreateInfo-pNext-01443
If thepNext
chain includes a VkExternalMemoryImageCreateInfo orVkExternalMemoryImageCreateInfoNV
structure whosehandleTypes
member is not0
,initialLayout
must beVK_IMAGE_LAYOUT_UNDEFINED
-
VUID-VkImageCreateInfo-format-06410
If the imageformat
is one of the formats that require a sampler Y′CBCR conversion,mipLevels
must be 1 -
VUID-VkImageCreateInfo-format-06411
If the imageformat
is one of the formats that require a sampler Y′CBCR conversion,samples
must beVK_SAMPLE_COUNT_1_BIT
-
VUID-VkImageCreateInfo-format-06412
If the imageformat
is one of the formats that require a sampler Y′CBCR conversion,imageType
must beVK_IMAGE_TYPE_2D
-
VUID-VkImageCreateInfo-imageCreateFormatFeatures-02260
Ifformat
is a multi-planar format, and ifimageCreateFormatFeatures
(as defined in Image Creation Limits) does not containVK_FORMAT_FEATURE_DISJOINT_BIT
, thenflags
must not containVK_IMAGE_CREATE_DISJOINT_BIT
-
VUID-VkImageCreateInfo-format-01577
Ifformat
is not a multi-planar format, andflags
does not includeVK_IMAGE_CREATE_ALIAS_BIT
,flags
must not containVK_IMAGE_CREATE_DISJOINT_BIT
-
VUID-VkImageCreateInfo-format-04712
Ifformat
has a_422
or_420
suffix,width
must be a multiple of 2 -
VUID-VkImageCreateInfo-format-04713
Ifformat
has a_420
suffix,height
must be a multiple of 2 -
VUID-VkImageCreateInfo-tiling-02261
Iftiling
isVK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT
, then thepNext
chain must include exactly one of VkImageDrmFormatModifierListCreateInfoEXT or VkImageDrmFormatModifierExplicitCreateInfoEXT structures -
VUID-VkImageCreateInfo-pNext-02262
If thepNext
chain includes a VkImageDrmFormatModifierListCreateInfoEXT or VkImageDrmFormatModifierExplicitCreateInfoEXT structure, thentiling
must beVK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT
-
VUID-VkImageCreateInfo-tiling-02353
Iftiling
isVK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT
andflags
containsVK_IMAGE_CREATE_MUTABLE_FORMAT_BIT
, then thepNext
chain must include a VkImageFormatListCreateInfo structure with non-zeroviewFormatCount
-
VUID-VkImageCreateInfo-flags-01533
Ifflags
containsVK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT
format
must be a depth or depth/stencil format -
VUID-VkImageCreateInfo-pNext-02393
If thepNext
chain includes a VkExternalMemoryImageCreateInfo structure whosehandleTypes
member includesVK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID
,imageType
must beVK_IMAGE_TYPE_2D
-
VUID-VkImageCreateInfo-pNext-02394
If thepNext
chain includes a VkExternalMemoryImageCreateInfo structure whosehandleTypes
member includesVK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID
,mipLevels
must either be1
or equal to the number of levels in the complete mipmap chain based onextent.width
,extent.height
, andextent.depth
-
VUID-VkImageCreateInfo-pNext-02396
If thepNext
chain includes a VkExternalFormatANDROID structure whoseexternalFormat
member is not0
,flags
must not includeVK_IMAGE_CREATE_MUTABLE_FORMAT_BIT
-
VUID-VkImageCreateInfo-pNext-02397
If thepNext
chain includes a VkExternalFormatANDROID structure whoseexternalFormat
member is not0
,usage
must not include any usages exceptVK_IMAGE_USAGE_SAMPLED_BIT
-
VUID-VkImageCreateInfo-pNext-02398
If thepNext
chain includes a VkExternalFormatANDROID structure whoseexternalFormat
member is not0
,tiling
must beVK_IMAGE_TILING_OPTIMAL
-
VUID-VkImageCreateInfo-pNext-08951
If thepNext
chain includes a VkExternalMemoryImageCreateInfo structure whosehandleTypes
member includesVK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX
,imageType
must beVK_IMAGE_TYPE_2D
-
VUID-VkImageCreateInfo-pNext-08952
If thepNext
chain includes a VkExternalMemoryImageCreateInfo structure whosehandleTypes
member includesVK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX
,mipLevels
must either be1
or equal to the number of levels in the complete mipmap chain based onextent.width
,extent.height
, andextent.depth
-
VUID-VkImageCreateInfo-pNext-08953
If thepNext
chain includes a VkExternalFormatQNX structure whoseexternalFormat
member is not0
,flags
must not includeVK_IMAGE_CREATE_MUTABLE_FORMAT_BIT
-
VUID-VkImageCreateInfo-pNext-08954
If thepNext
chain includes a VkExternalFormatQNX structure whoseexternalFormat
member is not0
,usage
must not include any usages exceptVK_IMAGE_USAGE_SAMPLED_BIT
-
VUID-VkImageCreateInfo-pNext-08955
If thepNext
chain includes a VkExternalFormatQNX structure whoseexternalFormat
member is not0
,tiling
must beVK_IMAGE_TILING_OPTIMAL
-
VUID-VkImageCreateInfo-format-02795
Ifformat
is a depth-stencil format,usage
includesVK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
, and thepNext
chain includes a VkImageStencilUsageCreateInfo structure, then its VkImageStencilUsageCreateInfo::stencilUsage
member must also includeVK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
-
VUID-VkImageCreateInfo-format-02796
Ifformat
is a depth-stencil format,usage
does not includeVK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
, and thepNext
chain includes a VkImageStencilUsageCreateInfo structure, then its VkImageStencilUsageCreateInfo::stencilUsage
member must also not includeVK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
-
VUID-VkImageCreateInfo-format-02797
Ifformat
is a depth-stencil format,usage
includesVK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT
, and thepNext
chain includes a VkImageStencilUsageCreateInfo structure, then its VkImageStencilUsageCreateInfo::stencilUsage
member must also includeVK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT
-
VUID-VkImageCreateInfo-format-02798
Ifformat
is a depth-stencil format,usage
does not includeVK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT
, and thepNext
chain includes a VkImageStencilUsageCreateInfo structure, then its VkImageStencilUsageCreateInfo::stencilUsage
member must also not includeVK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT
-
VUID-VkImageCreateInfo-Format-02536
IfFormat
is a depth-stencil format and thepNext
chain includes a VkImageStencilUsageCreateInfo structure with itsstencilUsage
member includingVK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT
,extent.width
must be less than or equal toVkPhysicalDeviceLimits
::maxFramebufferWidth
-
VUID-VkImageCreateInfo-format-02537
Ifformat
is a depth-stencil format and thepNext
chain includes a VkImageStencilUsageCreateInfo structure with itsstencilUsage
member includingVK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT
,extent.height
must be less than or equal toVkPhysicalDeviceLimits
::maxFramebufferHeight
-
VUID-VkImageCreateInfo-format-02538
If theshaderStorageImageMultisample
feature is not enabled,format
is a depth-stencil format and thepNext
chain includes a VkImageStencilUsageCreateInfo structure with itsstencilUsage
includingVK_IMAGE_USAGE_STORAGE_BIT
,samples
must beVK_SAMPLE_COUNT_1_BIT
-
VUID-VkImageCreateInfo-flags-02050
Ifflags
containsVK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV
,imageType
must beVK_IMAGE_TYPE_2D
orVK_IMAGE_TYPE_3D
-
VUID-VkImageCreateInfo-flags-02051
Ifflags
containsVK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV
, it must not containVK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT
and theformat
must not be a depth/stencil format -
VUID-VkImageCreateInfo-flags-02052
Ifflags
containsVK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV
andimageType
isVK_IMAGE_TYPE_2D
,extent.width
andextent.height
must be greater than1
-
VUID-VkImageCreateInfo-flags-02053
Ifflags
containsVK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV
andimageType
isVK_IMAGE_TYPE_3D
,extent.width
,extent.height
, andextent.depth
must be greater than1
-
VUID-VkImageCreateInfo-imageType-02082
Ifusage
includesVK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
,imageType
must beVK_IMAGE_TYPE_2D
-
VUID-VkImageCreateInfo-samples-02083
Ifusage
includesVK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
,samples
must beVK_SAMPLE_COUNT_1_BIT
-
VUID-VkImageCreateInfo-shadingRateImage-07727
If theshadingRateImage
feature is enabled andusage
includesVK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV
,tiling
must beVK_IMAGE_TILING_OPTIMAL
-
VUID-VkImageCreateInfo-flags-02565
Ifflags
containsVK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
,tiling
must beVK_IMAGE_TILING_OPTIMAL
-
VUID-VkImageCreateInfo-flags-02566
Ifflags
containsVK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
,imageType
must beVK_IMAGE_TYPE_2D
-
VUID-VkImageCreateInfo-flags-02567
Ifflags
containsVK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
,flags
must not containVK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT
-
VUID-VkImageCreateInfo-flags-02568
Ifflags
containsVK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
,mipLevels
must be1
-
VUID-VkImageCreateInfo-usage-04992
Ifusage
includesVK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI
,tiling
must beVK_IMAGE_TILING_LINEAR
-
VUID-VkImageCreateInfo-imageView2DOn3DImage-04459
If theVK_KHR_portability_subset
extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::imageView2DOn3DImage
isVK_FALSE
,flags
must not containVK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT
-
VUID-VkImageCreateInfo-multisampleArrayImage-04460
If theVK_KHR_portability_subset
extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::multisampleArrayImage
isVK_FALSE
, andsamples
is notVK_SAMPLE_COUNT_1_BIT
, thenarrayLayers
must be1
-
VUID-VkImageCreateInfo-pNext-06722
If a VkImageFormatListCreateInfo structure was included in thepNext
chain and VkImageFormatListCreateInfo::viewFormatCount
is not zero, then each format in VkImageFormatListCreateInfo::pViewFormats
must either be compatible with theformat
as described in the compatibility table or, ifflags
containsVK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT
, be an uncompressed format that is size-compatible withformat
-
VUID-VkImageCreateInfo-flags-04738
Ifflags
does not containVK_IMAGE_CREATE_MUTABLE_FORMAT_BIT
and thepNext
chain includes a VkImageFormatListCreateInfo structure, then VkImageFormatListCreateInfo::viewFormatCount
must be0
or1
-
VUID-VkImageCreateInfo-usage-04815
Ifusage
includesVK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR
,VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR
, orVK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR
, then thepNext
chain must include a VkVideoProfileListInfoKHR structure withprofileCount
greater than0
andpProfiles
including at least one VkVideoProfileInfoKHR structure with avideoCodecOperation
member specifying a decode operation -
VUID-VkImageCreateInfo-usage-04816
Ifusage
includesVK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR
,VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR
, orVK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR
, then thepNext
chain must include a VkVideoProfileListInfoKHR structure withprofileCount
greater than0
andpProfiles
including at least one VkVideoProfileInfoKHR structure with avideoCodecOperation
member specifying an encode operation -
VUID-VkImageCreateInfo-pNext-06811
If thepNext
chain includes a VkVideoProfileListInfoKHR structure withprofileCount
greater than0
, thensupportedVideoFormat
must beVK_TRUE
-
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 themultisampledRenderToSingleSampled
feature is not enabled,flags
must not containVK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT
-
VUID-VkImageCreateInfo-flags-06883
Ifflags
containsVK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT
,samples
must beVK_SAMPLE_COUNT_1_BIT
-
VUID-VkImageCreateInfo-pNext-06743
If thepNext
chain includes a VkImageCompressionControlEXT structure,format
is a multi-planar format, and VkImageCompressionControlEXT::flags
includesVK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT
, then VkImageCompressionControlEXT::compressionControlPlaneCount
must be equal to the number of planes informat
-
VUID-VkImageCreateInfo-pNext-06744
If thepNext
chain includes a VkImageCompressionControlEXT structure,format
is not a multi-planar format, and VkImageCompressionControlEXT::flags
includesVK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT
, then VkImageCompressionControlEXT::compressionControlPlaneCount
must be 1 -
VUID-VkImageCreateInfo-pNext-06746
If thepNext
chain includes a VkImageCompressionControlEXT structure, it must not contain a VkImageDrmFormatModifierExplicitCreateInfoEXT structure -
VUID-VkImageCreateInfo-flags-08104
Ifflags
includesVK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT
, thedescriptorBufferCaptureReplay
feature must be enabled -
VUID-VkImageCreateInfo-pNext-08105
If thepNext
chain includes a VkOpaqueCaptureDescriptorDataCreateInfoEXT structure,flags
must containVK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT
-
VUID-VkImageCreateInfo-pNext-06783
If thepNext
chain includes a VkExportMetalObjectCreateInfoEXT structure, itsexportObjectType
member must be eitherVK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT
orVK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT
-
VUID-VkImageCreateInfo-pNext-06784
If thepNext
chain includes a VkImportMetalTextureInfoEXT structure itsplane
member must beVK_IMAGE_ASPECT_PLANE_0_BIT
,VK_IMAGE_ASPECT_PLANE_1_BIT
, orVK_IMAGE_ASPECT_PLANE_2_BIT
-
VUID-VkImageCreateInfo-pNext-06785
If thepNext
chain includes a VkImportMetalTextureInfoEXT structure and the image does not have a multi-planar format, then VkImportMetalTextureInfoEXT::plane
must beVK_IMAGE_ASPECT_PLANE_0_BIT
-
VUID-VkImageCreateInfo-pNext-06786
If thepNext
chain includes a VkImportMetalTextureInfoEXT structure and the image has a multi-planar format with only two planes, then VkImportMetalTextureInfoEXT::plane
must 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_EXT
, thenusage
must not containVK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT
-
VUID-VkImageCreateInfo-sType-sType
sType
must beVK_STRUCTURE_TYPE_IMAGE_CREATE_INFO
-
VUID-VkImageCreateInfo-pNext-pNext
EachpNext
member of any structure (including this one) in thepNext
chain must be eitherNULL
or a pointer to a valid instance of VkBufferCollectionImageCreateInfoFUCHSIA, VkDedicatedAllocationImageCreateInfoNV, VkExportMetalObjectCreateInfoEXT, VkExternalFormatANDROID, VkExternalFormatQNX, VkExternalMemoryImageCreateInfo, VkExternalMemoryImageCreateInfoNV, VkImageCompressionControlEXT, VkImageDrmFormatModifierExplicitCreateInfoEXT, VkImageDrmFormatModifierListCreateInfoEXT, VkImageFormatListCreateInfo, VkImageStencilUsageCreateInfo, VkImageSwapchainCreateInfoKHR, VkImportMetalIOSurfaceInfoEXT, VkImportMetalTextureInfoEXT, VkOpaqueCaptureDescriptorDataCreateInfoEXT, VkOpticalFlowImageFormatInfoNV, or VkVideoProfileListInfoKHR -
VUID-VkImageCreateInfo-sType-unique
ThesType
value of each struct in thepNext
chain must be unique, with the exception of structures of type VkExportMetalObjectCreateInfoEXT or VkImportMetalTextureInfoEXT -
VUID-VkImageCreateInfo-flags-parameter
flags
must be a valid combination of VkImageCreateFlagBits values -
VUID-VkImageCreateInfo-imageType-parameter
imageType
must be a valid VkImageType value -
VUID-VkImageCreateInfo-format-parameter
format
must be a valid VkFormat value -
VUID-VkImageCreateInfo-samples-parameter
samples
must be a valid VkSampleCountFlagBits value -
VUID-VkImageCreateInfo-tiling-parameter
tiling
must be a valid VkImageTiling value -
VUID-VkImageCreateInfo-usage-parameter
usage
must be a valid combination of VkImageUsageFlagBits values -
VUID-VkImageCreateInfo-usage-requiredbitmask
usage
must not be0
-
VUID-VkImageCreateInfo-sharingMode-parameter
sharingMode
must be a valid VkSharingMode value -
VUID-VkImageCreateInfo-initialLayout-parameter
initialLayout
must 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.