Class VkImageCreateInfo
- All Implemented Interfaces:
AutoCloseable,org.lwjgl.system.NativeResource,org.lwjgl.system.Pointer
Description
Images created with tiling equal to IMAGE_TILING_LINEAR have further restrictions on their limits and capabilities compared to images created with tiling equal to IMAGE_TILING_OPTIMAL. Creation of images with tiling IMAGE_TILING_LINEAR may not be supported unless other parameters meet all of the constraints:
imageTypeisIMAGE_TYPE_2Dformatis not a depth/stencil formatmipLevelsis 1arrayLayersis 1samplesisSAMPLE_COUNT_1_BITusageonly includesIMAGE_USAGE_TRANSFER_SRC_BITand/orIMAGE_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:
imageTypeisIMAGE_TYPE_2DmipLevelsis 1arrayLayersis 1, unless theycbcrImageArraysfeature is enabled, or otherwise indicated byVkImageFormatProperties::maxArrayLayers, as returned byGetPhysicalDeviceImageFormatPropertiessamplesisSAMPLE_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 GetPhysicalDeviceFormatProperties.
If the size of the resultant image would exceed maxResourceSize, then CreateImage must fail and return ERROR_OUT_OF_DEVICE_MEMORY. This failure may occur even when all image creation parameters satisfy their valid usage requirements.
If the implementation reports TRUE in VkPhysicalDeviceHostImageCopyProperties::identicalMemoryTypeRequirements, usage of 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 IMAGE_CREATE_EXTENDED_USAGE_BIT a usage bit is valid if it is supported for the format the image is created with.
For images created with IMAGE_CREATE_EXTENDED_USAGE_BIT a usage bit is valid if it is supported for at least one of the formats a VkImageView created from the image can have (see Image Views for more detail).
Image Creation Limits
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 notIMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, thenimageCreateDrmFormatModifiersis empty. - If
VkImageCreateInfo::pNextcontainsVkImageDrmFormatModifierExplicitCreateInfoEXT, thenimageCreateDrmFormatModifierscontains exactly one modifier,VkImageDrmFormatModifierExplicitCreateInfoEXT::drmFormatModifier. - If
VkImageCreateInfo::pNextcontainsVkImageDrmFormatModifierListCreateInfoEXT, thenimageCreateDrmFormatModifierscontains the entire arrayVkImageDrmFormatModifierListCreateInfoEXT::pDrmFormatModifiers.
- If
- Let
VkBool32 imageCreateMaybeLinearindicate if the resultant image may be linear.- If
tilingisIMAGE_TILING_LINEAR, thenimageCreateMaybeLinearisTRUE. - If
tilingisIMAGE_TILING_OPTIMAL, thenimageCreateMaybeLinearisFALSE. - If
tilingisIMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, thenimageCreateMaybeLinearisTRUEif and only ifimageCreateDrmFormatModifierscontainsDRM_FORMAT_MOD_LINEAR.
- If
- Let
VkFormatFeatureFlags imageCreateFormatFeaturesbe the set of valid format features available during image creation.- If
tilingisIMAGE_TILING_LINEAR, thenimageCreateFormatFeaturesis the value ofVkFormatProperties::linearTilingFeaturesfound by callingGetPhysicalDeviceFormatPropertieswith parameterformatequal toVkImageCreateInfo::format. - If
tilingisIMAGE_TILING_OPTIMAL, and if thepNextchain includes noVkExternalFormatANDROIDstructure with non-zeroexternalFormat, thenimageCreateFormatFeaturesis the value ofVkFormatProperties::optimalTilingFeaturesfound by callingGetPhysicalDeviceFormatPropertieswith parameterformatequal toVkImageCreateInfo::format. - If
tilingisIMAGE_TILING_OPTIMAL, and if thepNextchain includes aVkExternalFormatANDROIDstructure with non-zeroexternalFormat, thenimageCreateFormatFeaturesis the value ofVkAndroidHardwareBufferFormatPropertiesANDROID::formatFeaturesobtained byGetAndroidHardwareBufferPropertiesANDROIDwith a matchingexternalFormatvalue. - If
tilingisIMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then the value ofimageCreateFormatFeaturesis found by callingGetPhysicalDeviceFormatProperties2withVkImageFormatProperties::formatequal toVkImageCreateInfo::formatand withVkDrmFormatModifierPropertiesListEXTchained intoVkFormatProperties2; by collecting all members of the returned arrayVkDrmFormatModifierPropertiesListEXT::pDrmFormatModifierPropertieswhosedrmFormatModifierbelongs toimageCreateDrmFormatModifiers; and by taking the bitwise intersection, over the collected array members, ofdrmFormatModifierTilingFeatures. (The resultantimageCreateFormatFeaturesmay be empty).
- If
- Let
VkImageFormatProperties2 imageCreateImageFormatPropertiesList[]be defined as follows.- If
VkImageCreateInfo::pNextcontains noVkExternalFormatANDROIDstructure with non-zeroexternalFormat, thenimageCreateImageFormatPropertiesListis the list of structures obtained by callingGetPhysicalDeviceImageFormatProperties2, possibly multiple times, as follows:- The parameters
VkPhysicalDeviceImageFormatInfo2::format,imageType,tiling,usage, andflagsmust be equal to those inVkImageCreateInfo. - If
VkImageCreateInfo::pNextcontains aVkExternalMemoryImageCreateInfostructure whosehandleTypesis not 0, thenVkPhysicalDeviceImageFormatInfo2::pNextmust contain aVkPhysicalDeviceExternalImageFormatInfostructure whosehandleTypeis not 0; andGetPhysicalDeviceImageFormatProperties2must be called for each handle type inVkExternalMemoryImageCreateInfo::handleTypes, successively settingVkPhysicalDeviceExternalImageFormatInfo::handleTypeon each call. - If
VkImageCreateInfo::pNextcontains noVkExternalMemoryImageCreateInfostructure, or contains a structure whosehandleTypesis 0, thenVkPhysicalDeviceImageFormatInfo2::pNextmust either contain noVkPhysicalDeviceExternalImageFormatInfostructure, or contain a structure whosehandleTypeis 0. - If
VkImageCreateInfo::pNextcontains aVkVideoProfileListInfoKHRstructure thenVkPhysicalDeviceImageFormatInfo2::pNextmust also contain the sameVkVideoProfileListInfoKHRstructure on each call. - If
tilingisIMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then:VkPhysicalDeviceImageFormatInfo2::pNextmust contain aVkPhysicalDeviceImageDrmFormatModifierInfoEXTstructure wheresharingModeis equal toVkImageCreateInfo::sharingMode;- if
sharingModeisSHARING_MODE_CONCURRENT, thenqueueFamilyIndexCountandpQueueFamilyIndicesmust be equal to those inVkImageCreateInfo; - if
flagscontainsIMAGE_CREATE_MUTABLE_FORMAT_BIT, then theVkImageFormatListCreateInfostructure included in thepNextchain ofVkPhysicalDeviceImageFormatInfo2must be equivalent to the one included in thepNextchain ofVkImageCreateInfo; - if
VkImageCreateInfo::pNextcontains aVkImageCompressionControlEXTstructure, then theVkPhysicalDeviceImageFormatInfo2::pNextchain must contain an equivalent structure; GetPhysicalDeviceImageFormatProperties2must be called for each modifier inimageCreateDrmFormatModifiers, successively settingVkPhysicalDeviceImageDrmFormatModifierInfoEXT::drmFormatModifieron each call.
- If
tilingis notIMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, thenVkPhysicalDeviceImageFormatInfo2::pNextmust contain noVkPhysicalDeviceImageDrmFormatModifierInfoEXTstructure. - If any call to
GetPhysicalDeviceImageFormatProperties2returns an error, thenimageCreateImageFormatPropertiesListis defined to be the empty list.
- The parameters
- If
VkImageCreateInfo::pNextcontains aVkExternalFormatANDROIDstructure with non-zeroexternalFormat, thenimageCreateImageFormatPropertiesListcontains a single element where:VkImageFormatProperties::maxMipLevelsis⌊log2(max(extent.width, extent.height, extent.depth))⌋ + 1.VkImageFormatProperties::maxArrayLayersisVkPhysicalDeviceLimits::maxImageArrayLayers.- Each component of
VkImageFormatProperties::maxExtentisVkPhysicalDeviceLimits::maxImageDimension2D. VkImageFormatProperties::sampleCountscontains exactlySAMPLE_COUNT_1_BIT.
- If
- Let
uint32_t imageCreateMaxMipLevelsbe the minimum value ofVkImageFormatProperties::maxMipLevelsinimageCreateImageFormatPropertiesList. The value is undefined ifimageCreateImageFormatPropertiesListis empty. - Let
uint32_t imageCreateMaxArrayLayersbe the minimum value ofVkImageFormatProperties::maxArrayLayersinimageCreateImageFormatPropertiesList. The value is undefined ifimageCreateImageFormatPropertiesListis empty. - Let
VkExtent3D imageCreateMaxExtentbe the component-wise minimum over allVkImageFormatProperties::maxExtentvalues inimageCreateImageFormatPropertiesList. The value is undefined ifimageCreateImageFormatPropertiesListis empty. - Let
VkSampleCountFlags imageCreateSampleCountsbe the intersection of eachVkImageFormatProperties::sampleCountsinimageCreateImageFormatPropertiesList. The value is undefined ifimageCreateImageFormatPropertiesListis empty. - Let
VkVideoFormatPropertiesKHR videoFormatProperties[]be defined as follows.- If
VkImageCreateInfo::pNextcontains aVkVideoProfileListInfoKHRstructure, thenvideoFormatPropertiesis the list of structures obtained by callingGetPhysicalDeviceVideoFormatPropertiesKHRwithVkPhysicalDeviceVideoFormatInfoKHR::imageUsageequal to theusagemember ofVkImageCreateInfoandVkPhysicalDeviceVideoFormatInfoKHR::pNextcontaining the sameVkVideoProfileListInfoKHRstructure chained toVkImageCreateInfo. - If
VkImageCreateInfo::pNextcontains noVkVideoProfileListInfoKHRstructure, thenvideoFormatPropertiesis an empty list.
- If
- Let
VkBool32 supportedVideoFormatindicate if the image parameters are supported by the specified video profiles.supportedVideoFormatisTRUEif there exists an element in thevideoFormatPropertieslist for which all of the following conditions are true:VkImageCreateInfo::formatequalsVkVideoFormatPropertiesKHR::format.VkImageCreateInfo::flagsonly containsIMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHRand/or bits also set inVkVideoFormatPropertiesKHR::imageCreateFlags.VkImageCreateInfo::imageTypeequalsVkVideoFormatPropertiesKHR::imageType.VkImageCreateInfo::tilingequalsVkVideoFormatPropertiesKHR::imageTiling.VkImageCreateInfo::usageonly contains bits also set inVkVideoFormatPropertiesKHR::imageUsageFlags, orVkImageCreateInfo::flagsincludesIMAGE_CREATE_EXTENDED_USAGE_BIT.
- Otherwise
supportedVideoFormatisFALSE.
Valid Usage
- Each of the following values (as described in Image Creation Limits) must not be undefined :
imageCreateMaxMipLevels,imageCreateMaxArrayLayers,imageCreateMaxExtent, andimageCreateSampleCounts - If
sharingModeisSHARING_MODE_CONCURRENT,pQueueFamilyIndicesmust be a valid pointer to an array ofqueueFamilyIndexCountuint32_tvalues - If
sharingModeisSHARING_MODE_CONCURRENT,queueFamilyIndexCountmust be greater than 1 - If
sharingModeisSHARING_MODE_CONCURRENT, each element ofpQueueFamilyIndicesmust be unique and must be less thanpQueueFamilyPropertyCountreturned by eitherGetPhysicalDeviceQueueFamilyPropertiesorGetPhysicalDeviceQueueFamilyProperties2for thephysicalDevicethat was used to createdevice - If the
pNextchain includes aVkExternalFormatANDROIDstructure, and itsexternalFormatmember is non-zero theformatmust beFORMAT_UNDEFINED - If the
pNextchain does not include aVkExternalFormatANDROIDstructure, or does and itsexternalFormatmember is 0, theformatmust not beFORMAT_UNDEFINED extent.widthmust be greater than 0extent.heightmust be greater than 0extent.depthmust be greater than 0mipLevelsmust be greater than 0arrayLayersmust be greater than 0- If
flagscontainsIMAGE_CREATE_CUBE_COMPATIBLE_BIT,imageTypemust beIMAGE_TYPE_2D - If
flagscontainsIMAGE_CREATE_CUBE_COMPATIBLE_BIT,extent.widthandextent.heightmust be equal - If
flagscontainsIMAGE_CREATE_CUBE_COMPATIBLE_BIT,arrayLayersmust be greater than or equal to 6 - If
flagscontainsIMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT,imageTypemust beIMAGE_TYPE_2D - If
flagscontainsIMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,imageTypemust beIMAGE_TYPE_3D - If
flagscontainsIMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,flagsmust not includeIMAGE_CREATE_SPARSE_ALIASED_BIT,IMAGE_CREATE_SPARSE_BINDING_BIT, orIMAGE_CREATE_SPARSE_RESIDENCY_BIT - If
flagscontainsIMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT,imageTypemust beIMAGE_TYPE_3D - If
flagscontainsIMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT,flagsmust not includeIMAGE_CREATE_SPARSE_ALIASED_BIT,IMAGE_CREATE_SPARSE_BINDING_BIT, orIMAGE_CREATE_SPARSE_RESIDENCY_BIT extent.widthmust be less than or equal toimageCreateMaxExtent.width(as defined in Image Creation Limits)extent.heightmust be less than or equal toimageCreateMaxExtent.height(as defined in Image Creation Limits)extent.depthmust be less than or equal toimageCreateMaxExtent.depth(as defined in Image Creation Limits)- If
imageTypeisIMAGE_TYPE_1D, bothextent.heightandextent.depthmust be 1 - If
imageTypeisIMAGE_TYPE_2D,extent.depthmust be 1 mipLevelsmust be less than or equal to the number of levels in the complete mipmap chain based onextent.width,extent.height, andextent.depthmipLevelsmust be less than or equal toimageCreateMaxMipLevels(as defined in Image Creation Limits)arrayLayersmust be less than or equal toimageCreateMaxArrayLayers(as defined in Image Creation Limits)- If
imageTypeisIMAGE_TYPE_3D,arrayLayersmust be 1 - If
samplesis notSAMPLE_COUNT_1_BIT, thenimageTypemust beIMAGE_TYPE_2D,flagsmust not containIMAGE_CREATE_CUBE_COMPATIBLE_BIT,mipLevelsmust be equal to 1, andimageCreateMaybeLinear(as defined in Image Creation Limits) must beFALSE, - If
samplesis notSAMPLE_COUNT_1_BIT,usagemust not containIMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT - If
usageincludesIMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, then bits other thanIMAGE_USAGE_COLOR_ATTACHMENT_BIT,IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, andIMAGE_USAGE_INPUT_ATTACHMENT_BITmust not be set - If
usageincludesIMAGE_USAGE_COLOR_ATTACHMENT_BIT,IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, orIMAGE_USAGE_INPUT_ATTACHMENT_BIT,extent.widthmust be less than or equal toVkPhysicalDeviceLimits::maxFramebufferWidth - If
usageincludesIMAGE_USAGE_COLOR_ATTACHMENT_BIT,IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, orIMAGE_USAGE_INPUT_ATTACHMENT_BIT,extent.heightmust be less than or equal toVkPhysicalDeviceLimits::maxFramebufferHeight - If the
fragmentDensityMapOffsetfeature is not enabled andusageincludesIMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT,extent.widthmust be less than or equal toceil(maxFramebufferWidth / minFragmentDensityTexelSizewidth) - If the
fragmentDensityMapOffsetfeature is not enabled andusageincludesIMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT,extent.heightmust be less than or equal toceil(maxFramebufferHeight / minFragmentDensityTexelSizeheight) - If
usageincludesIMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT,usagemust also contain at least one ofIMAGE_USAGE_COLOR_ATTACHMENT_BIT,IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, orIMAGE_USAGE_INPUT_ATTACHMENT_BIT samplesmust be a validVkSampleCountFlagBitsvalue that is set inimageCreateSampleCounts(as defined in Image Creation Limits)- If the
shaderStorageImageMultisamplefeature is not enabled, andusagecontainsIMAGE_USAGE_STORAGE_BIT,samplesmust beSAMPLE_COUNT_1_BIT - If the
sparseBindingfeature is not enabled,flagsmust not containIMAGE_CREATE_SPARSE_BINDING_BIT - If the
sparseResidencyAliasedfeature is not enabled,flagsmust not containIMAGE_CREATE_SPARSE_ALIASED_BIT - If
tilingisIMAGE_TILING_LINEAR,flagsmust not containIMAGE_CREATE_SPARSE_RESIDENCY_BIT - If
imageTypeisIMAGE_TYPE_1D,flagsmust not containIMAGE_CREATE_SPARSE_RESIDENCY_BIT - If the
sparseResidencyImage2Dfeature is not enabled, andimageTypeisIMAGE_TYPE_2D,flagsmust not containIMAGE_CREATE_SPARSE_RESIDENCY_BIT - If the
sparseResidencyImage3Dfeature is not enabled, andimageTypeisIMAGE_TYPE_3D,flagsmust not containIMAGE_CREATE_SPARSE_RESIDENCY_BIT - If the
sparseResidency2Samplesfeature is not enabled,imageTypeisIMAGE_TYPE_2D, andsamplesisSAMPLE_COUNT_2_BIT,flagsmust not containIMAGE_CREATE_SPARSE_RESIDENCY_BIT - If the
sparseResidency4Samplesfeature is not enabled,imageTypeisIMAGE_TYPE_2D, andsamplesisSAMPLE_COUNT_4_BIT,flagsmust not containIMAGE_CREATE_SPARSE_RESIDENCY_BIT - If the
sparseResidency8Samplesfeature is not enabled,imageTypeisIMAGE_TYPE_2D, andsamplesisSAMPLE_COUNT_8_BIT,flagsmust not containIMAGE_CREATE_SPARSE_RESIDENCY_BIT - If the
sparseResidency16Samplesfeature is not enabled,imageTypeisIMAGE_TYPE_2D, andsamplesisSAMPLE_COUNT_16_BIT,flagsmust not containIMAGE_CREATE_SPARSE_RESIDENCY_BIT - If
flagscontainsIMAGE_CREATE_SPARSE_RESIDENCY_BITorIMAGE_CREATE_SPARSE_ALIASED_BIT, it must also containIMAGE_CREATE_SPARSE_BINDING_BIT - If any of the bits
IMAGE_CREATE_SPARSE_BINDING_BIT,IMAGE_CREATE_SPARSE_RESIDENCY_BIT, orIMAGE_CREATE_SPARSE_ALIASED_BITare set,IMAGE_USAGE_TRANSIENT_ATTACHMENT_BITmust not also be set - If the
protectedMemoryfeature is not enabled,flagsmust not containIMAGE_CREATE_PROTECTED_BIT - If any of the bits
IMAGE_CREATE_SPARSE_BINDING_BIT,IMAGE_CREATE_SPARSE_RESIDENCY_BIT, orIMAGE_CREATE_SPARSE_ALIASED_BITare set,IMAGE_CREATE_PROTECTED_BITmust not also be set - If the
pNextchain includes aVkExternalMemoryImageCreateInfoNVstructure, it must not contain aVkExternalMemoryImageCreateInfostructure - If the
pNextchain includes aVkExternalMemoryImageCreateInfostructure, itshandleTypesmember must only contain bits that are also inVkExternalImageFormatProperties::externalMemoryProperties.compatibleHandleTypes, as returned byGetPhysicalDeviceImageFormatProperties2withformat,imageType,tiling,usage, andflagsequal to those in this structure, and with aVkPhysicalDeviceExternalImageFormatInfostructure included in thepNextchain, with ahandleTypeequal to any one of the handle types specified inVkExternalMemoryImageCreateInfo::handleTypes - If the
pNextchain includes aVkExternalMemoryImageCreateInfoNVstructure, itshandleTypesmember must only contain bits that are also inVkExternalImageFormatPropertiesNV::externalMemoryProperties.compatibleHandleTypes, as returned byGetPhysicalDeviceExternalImageFormatPropertiesNVwithformat,imageType,tiling,usage, andflagsequal to those in this structure, and withexternalHandleTypeequal to any one of the handle types specified inVkExternalMemoryImageCreateInfoNV::handleTypes - If the logical device was created with
VkDeviceGroupDeviceCreateInfo::physicalDeviceCountequal to 1,flagsmust not containIMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT - If
flagscontainsIMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT, thenmipLevelsmust be one,arrayLayersmust be one,imageTypemust beIMAGE_TYPE_2D. andimageCreateMaybeLinear(as defined in Image Creation Limits) must beFALSE - If
flagscontainsIMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, thenformatmust be a compressed image format - If
flagscontainsIMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, thenflagsmust also containIMAGE_CREATE_MUTABLE_FORMAT_BIT initialLayoutmust beIMAGE_LAYOUT_UNDEFINEDorIMAGE_LAYOUT_PREINITIALIZED- If the
pNextchain includes aVkExternalMemoryImageCreateInfoorVkExternalMemoryImageCreateInfoNVstructure whosehandleTypesmember is not 0,initialLayoutmust beIMAGE_LAYOUT_UNDEFINED - If the image
formatis one of the formats that require a sampler Y′CBCR conversion,mipLevelsmust be 1 - If the image
formatis one of the formats that require a sampler Y′CBCR conversion,samplesmust beSAMPLE_COUNT_1_BIT - If the image
formatis one of the formats that require a sampler Y′CBCR conversion,imageTypemust beIMAGE_TYPE_2D - If
formatis a multi-planar format, and ifimageCreateFormatFeatures(as defined in Image Creation Limits) does not containFORMAT_FEATURE_DISJOINT_BIT, thenflagsmust not containIMAGE_CREATE_DISJOINT_BIT - If
formatis not a multi-planar format, andflagsdoes not includeIMAGE_CREATE_ALIAS_BIT,flagsmust not containIMAGE_CREATE_DISJOINT_BIT - If
formathas a_422or_420suffix,extent.widthmust be a multiple of 2 - If
formathas a_420suffix,extent.heightmust be a multiple of 2 - If
formatis one of theVK_FORMAT_PVTRC1_*_IMGformats,extent.widthmust be a power of 2 - If
formatis one of theVK_FORMAT_PVTRC1_*_IMGformats,extent.heightmust be a power of 2 - If
tilingisIMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then thepNextchain must include exactly one ofVkImageDrmFormatModifierListCreateInfoEXTorVkImageDrmFormatModifierExplicitCreateInfoEXTstructures - If the
pNextchain includes aVkImageDrmFormatModifierListCreateInfoEXTorVkImageDrmFormatModifierExplicitCreateInfoEXTstructure, thentilingmust beIMAGE_TILING_DRM_FORMAT_MODIFIER_EXT - If
tilingisIMAGE_TILING_DRM_FORMAT_MODIFIER_EXTandflagscontainsIMAGE_CREATE_MUTABLE_FORMAT_BIT, then thepNextchain must include aVkImageFormatListCreateInfostructure with non-zeroviewFormatCount - If
flagscontainsIMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXTformatmust be a depth or depth/stencil format - If the
pNextchain includes aVkExternalMemoryImageCreateInfostructure whosehandleTypesmember includesEXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID,imageTypemust beIMAGE_TYPE_2D - If the
pNextchain includes aVkExternalMemoryImageCreateInfostructure whosehandleTypesmember includesEXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID,mipLevelsmust either be 1 or equal to the number of levels in the complete mipmap chain based onextent.width,extent.height, andextent.depth - If the
pNextchain includes aVkExternalFormatANDROIDstructure whoseexternalFormatmember is not 0,flagsmust not includeIMAGE_CREATE_MUTABLE_FORMAT_BIT - If the
pNextchain includes aVkExternalFormatANDROIDstructure whoseexternalFormatmember is not 0,usagemust not include any usages exceptIMAGE_USAGE_INPUT_ATTACHMENT_BIT,IMAGE_USAGE_COLOR_ATTACHMENT_BIT, orIMAGE_USAGE_SAMPLED_BIT - If the
pNextchain includes aVkExternalFormatANDROIDstructure whoseexternalFormatmember is not 0, andexternalFormatResolvefeature is not enabled,usagemust not includeIMAGE_USAGE_INPUT_ATTACHMENT_BITorIMAGE_USAGE_COLOR_ATTACHMENT_BIT - If the
pNextchain includes aVkExternalFormatANDROIDstructure whoseexternalFormatmember is not 0,tilingmust beIMAGE_TILING_OPTIMAL - If
formatis a depth-stencil format,usageincludesIMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, and thepNextchain includes aVkImageStencilUsageCreateInfostructure, then itsVkImageStencilUsageCreateInfo::stencilUsagemember must also includeIMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT - If
formatis a depth-stencil format,usagedoes not includeIMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, and thepNextchain includes aVkImageStencilUsageCreateInfostructure, then itsVkImageStencilUsageCreateInfo::stencilUsagemember must also not includeIMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT - If
formatis a depth-stencil format,usageincludesIMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, and thepNextchain includes aVkImageStencilUsageCreateInfostructure, then itsVkImageStencilUsageCreateInfo::stencilUsagemember must also includeIMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT - If
formatis a depth-stencil format,usagedoes not includeIMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, and thepNextchain includes aVkImageStencilUsageCreateInfostructure, then itsVkImageStencilUsageCreateInfo::stencilUsagemember must also not includeIMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT - If
Formatis a depth-stencil format and thepNextchain includes aVkImageStencilUsageCreateInfostructure with itsstencilUsagemember includingIMAGE_USAGE_INPUT_ATTACHMENT_BIT,extent.widthmust be less than or equal toVkPhysicalDeviceLimits::maxFramebufferWidth - If
formatis a depth-stencil format and thepNextchain includes aVkImageStencilUsageCreateInfostructure with itsstencilUsagemember includingIMAGE_USAGE_INPUT_ATTACHMENT_BIT,extent.heightmust be less than or equal toVkPhysicalDeviceLimits::maxFramebufferHeight - If the
shaderStorageImageMultisamplefeature is not enabled,formatis a depth-stencil format and thepNextchain includes aVkImageStencilUsageCreateInfostructure with itsstencilUsageincludingIMAGE_USAGE_STORAGE_BIT,samplesmust beSAMPLE_COUNT_1_BIT - If
flagscontainsIMAGE_CREATE_CORNER_SAMPLED_BIT_NV,imageTypemust beIMAGE_TYPE_2DorIMAGE_TYPE_3D - If
flagscontainsIMAGE_CREATE_CORNER_SAMPLED_BIT_NV, it must not containIMAGE_CREATE_CUBE_COMPATIBLE_BITand theformatmust not be a depth/stencil format - If
flagscontainsIMAGE_CREATE_CORNER_SAMPLED_BIT_NVandimageTypeisIMAGE_TYPE_2D,extent.widthandextent.heightmust be greater than 1 - If
flagscontainsIMAGE_CREATE_CORNER_SAMPLED_BIT_NVandimageTypeisIMAGE_TYPE_3D,extent.width,extent.height, andextent.depthmust be greater than 1 - If
usageincludesIMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,imageTypemust beIMAGE_TYPE_2D - If
usageincludesIMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,samplesmust beSAMPLE_COUNT_1_BIT - If the
shadingRateImagefeature is enabled andusageincludesIMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV,tilingmust beIMAGE_TILING_OPTIMAL - If
flagscontainsIMAGE_CREATE_SUBSAMPLED_BIT_EXT,tilingmust beIMAGE_TILING_OPTIMAL - If
flagscontainsIMAGE_CREATE_SUBSAMPLED_BIT_EXT,imageTypemust beIMAGE_TYPE_2D - If
flagscontainsIMAGE_CREATE_SUBSAMPLED_BIT_EXT,flagsmust not containIMAGE_CREATE_CUBE_COMPATIBLE_BIT - If
flagscontainsIMAGE_CREATE_SUBSAMPLED_BIT_EXT,mipLevelsmust be 1 - If
usageincludesIMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI,tilingmust beIMAGE_TILING_LINEAR - If the
VK_KHR_portability_subsetextension is enabled, andVkPhysicalDevicePortabilitySubsetFeaturesKHR::imageView2DOn3DImageisFALSE,flagsmust not containIMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT - If the
VK_KHR_portability_subsetextension is enabled, andVkPhysicalDevicePortabilitySubsetFeaturesKHR::multisampleArrayImageisFALSE, andsamplesis notSAMPLE_COUNT_1_BIT, thenarrayLayersmust be 1 - If a
VkImageFormatListCreateInfostructure was included in thepNextchain andformatis not a multi-planar format andVkImageFormatListCreateInfo::viewFormatCountis not zero, then each format inVkImageFormatListCreateInfo::pViewFormatsmust either be compatible with theformatas described in the compatibility table or, ifflagscontainsIMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, be an uncompressed format that is size-compatible withformat - If a
VkImageFormatListCreateInfostructure was included in thepNextchain andformatis a multi-planar format andflagscontainsIMAGE_CREATE_MUTABLE_FORMAT_BITandVkImageFormatListCreateInfo::viewFormatCountis not zero, then each format inVkImageFormatListCreateInfo::pViewFormatsmust be compatible with theVkFormatfor the plane of the image format - If
flagsdoes not containIMAGE_CREATE_MUTABLE_FORMAT_BITand thepNextchain includes aVkImageFormatListCreateInfostructure, thenVkImageFormatListCreateInfo::viewFormatCountmust be 0 or 1 - If
usageincludesIMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR,IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR, orIMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR, andflagsdoes not includeIMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR, then thepNextchain must include aVkVideoProfileListInfoKHRstructure withprofileCountgreater than 0 andpProfilesincluding at least oneVkVideoProfileInfoKHRstructure with avideoCodecOperationmember specifying a decode operation - If
usageincludesIMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR,IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR, orIMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR, andflagsdoes not includeIMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR, then thepNextchain must include aVkVideoProfileListInfoKHRstructure withprofileCountgreater than 0 andpProfilesincluding at least oneVkVideoProfileInfoKHRstructure with avideoCodecOperationmember specifying an encode operation - If
flagsincludesIMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR, thenvideoMaintenance1must be enabled - If
flagsincludesIMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHRandusagedoes not includeIMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR, thenusagemust not includeIMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR - If
flagsincludesIMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR, thenusagemust not includeIMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR,IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR, orIMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR - If the
pNextchain includes aVkVideoProfileListInfoKHRstructure withprofileCountgreater than 0, thensupportedVideoFormatmust beTRUE - If the
pNextchain includes aVkVideoProfileListInfoKHRstructure and for any element of itspProfilesmembervideoCodecOperationisVIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR, then thevideoEncodeAV1feature must be enabled - If
usageincludesIMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHRorIMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR, then thevideoEncodeQuantizationMapfeature must be enabled - If
usageincludesIMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHRorIMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR,imageTypemust beIMAGE_TYPE_2D - If
usageincludesIMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHRorIMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR,samplesmust beSAMPLE_COUNT_1_BIT - If
usageincludesIMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHRorIMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR, then thepNextchain must include aVkVideoProfileListInfoKHRstructure withprofileCountequal to 1 andpProfilespointing to aVkVideoProfileInfoKHRstructure with avideoCodecOperationmember specifying an encode operation - If
usageincludesIMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR, thenVkVideoEncodeCapabilitiesKHR::flagsmust includeVIDEO_ENCODE_CAPABILITY_QUANTIZATION_DELTA_MAP_BIT_KHR, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile specified in thepProfilesmember of theVkVideoProfileListInfoKHRstructure included in thepNextchain - If
usageincludesIMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR, thenVkVideoEncodeCapabilitiesKHR::flagsmust includeVIDEO_ENCODE_CAPABILITY_EMPHASIS_MAP_BIT_KHR, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile specified in thepProfilesmember of theVkVideoProfileListInfoKHRstructure included in thepNextchain - If
usageincludesIMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHRorIMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR,extent.widthmust be less than or equal toVkVideoEncodeQuantizationMapCapabilitiesKHR::maxQuantizationMapExtent.width, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile specified in thepProfilesmember of theVkVideoProfileListInfoKHRstructure included in thepNextchain - If
usageincludesIMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHRorIMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR,extent.heightmust be less than or equal toVkVideoEncodeQuantizationMapCapabilitiesKHR::maxQuantizationMapExtent.height, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile specified in thepProfilesmember of theVkVideoProfileListInfoKHRstructure included in thepNextchain - If the
multisampledRenderToSingleSampledfeature is not enabled,flagsmust not containIMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT - If
flagscontainsIMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT,samplesmust beSAMPLE_COUNT_1_BIT - If the
pNextchain includes aVkImageCompressionControlEXTstructure,formatis a multi-planar format, andVkImageCompressionControlEXT::flagsincludesIMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT, thenVkImageCompressionControlEXT::compressionControlPlaneCountmust be equal to the number of planes informat - If the
pNextchain includes aVkImageCompressionControlEXTstructure,formatis not a multi-planar format, andVkImageCompressionControlEXT::flagsincludesIMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT, thenVkImageCompressionControlEXT::compressionControlPlaneCountmust be 1 - If the
pNextchain includes aVkImageCompressionControlEXTstructure, it must not contain aVkImageDrmFormatModifierExplicitCreateInfoEXTstructure - If
flagsincludesIMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT, thedescriptorBufferCaptureReplayfeature must be enabled - If the
pNextchain includes aVkOpaqueCaptureDescriptorDataCreateInfoEXTstructure,flagsmust containIMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT - If the
pNextchain includes aVkExportMetalObjectCreateInfoEXTstructure, itsexportObjectTypemember must be eitherEXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXTorEXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT - If the
pNextchain includes aVkImportMetalTextureInfoEXTstructure itsplanemember must beIMAGE_ASPECT_PLANE_0_BIT,IMAGE_ASPECT_PLANE_1_BIT, orIMAGE_ASPECT_PLANE_2_BIT - If the
pNextchain includes aVkImportMetalTextureInfoEXTstructure and the image does not have a multi-planar format, thenVkImportMetalTextureInfoEXT::planemust beIMAGE_ASPECT_PLANE_0_BIT - If the
pNextchain includes aVkImportMetalTextureInfoEXTstructure and the image has a multi-planar format with only two planes, thenVkImportMetalTextureInfoEXT::planemust not beIMAGE_ASPECT_PLANE_2_BIT - If
imageCreateFormatFeatures(as defined in Image Creation Limits) does not containFORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT, thenusagemust not containIMAGE_USAGE_HOST_TRANSFER_BIT - If
usageincludesIMAGE_USAGE_HOST_TRANSFER_BIT_EXT, then thehostImageCopyfeature must be enabled - If the
pNextchain contains aVkImageAlignmentControlCreateInfoMESAstructure,tilingmust beIMAGE_TILING_OPTIMAL - If the
pNextchain contains aVkImageAlignmentControlCreateInfoMESAstructure, it must not contain aVkExternalMemoryImageCreateInfostructure
Valid Usage (Implicit)
sTypemust beSTRUCTURE_TYPE_IMAGE_CREATE_INFO- Each
pNextmember of any structure (including this one) in thepNextchain must be eitherNULLor a pointer to a valid instance ofVkDedicatedAllocationImageCreateInfoNV,VkExportMetalObjectCreateInfoEXT,VkExternalFormatANDROID,VkExternalMemoryImageCreateInfo,VkExternalMemoryImageCreateInfoNV,VkImageAlignmentControlCreateInfoMESA,VkImageCompressionControlEXT,VkImageDrmFormatModifierExplicitCreateInfoEXT,VkImageDrmFormatModifierListCreateInfoEXT,VkImageFormatListCreateInfo,VkImageStencilUsageCreateInfo,VkImageSwapchainCreateInfoKHR,VkImportMetalIOSurfaceInfoEXT,VkImportMetalTextureInfoEXT,VkOpaqueCaptureDescriptorDataCreateInfoEXT,VkOpticalFlowImageFormatInfoNV, orVkVideoProfileListInfoKHR - The
sTypevalue of each struct in thepNextchain must be unique, with the exception of structures of typeVkExportMetalObjectCreateInfoEXTorVkImportMetalTextureInfoEXT flagsmust be a valid combination ofVkImageCreateFlagBitsvaluesimageTypemust be a validVkImageTypevalueformatmust be a validVkFormatvaluesamplesmust be a validVkSampleCountFlagBitsvaluetilingmust be a validVkImageTilingvalueusagemust be a valid combination ofVkImageUsageFlagBitsvaluesusagemust not be 0sharingModemust be a validVkSharingModevalueinitialLayoutmust be a validVkImageLayoutvalue
See Also
VkDeviceImageMemoryRequirements, VkDeviceImageSubresourceInfo, VkExtent3D, CreateImage
Layout
struct VkImageCreateInfo {
VkStructureType sType();
void const * 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();
uint32_t const * pQueueFamilyIndices();
VkImageLayout initialLayout();
}-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class org.lwjgl.system.Struct
org.lwjgl.system.Struct.StructValidationNested classes/interfaces inherited from interface org.lwjgl.system.Pointer
org.lwjgl.system.Pointer.Default -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intThe struct alignment in bytes.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct size in bytes.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.Fields inherited from interface org.lwjgl.system.Pointer
BITS32, BITS64, CLONG_SHIFT, CLONG_SIZE, POINTER_SHIFT, POINTER_SIZE -
Constructor Summary
ConstructorsConstructorDescriptionVkImageCreateInfo(ByteBuffer container) Creates aVkImageCreateInfoinstance at the current position of the specifiedByteBuffercontainer. -
Method Summary
Modifier and TypeMethodDescriptionintthe number of layers in the image.arrayLayers(int value) Sets the specified value to thearrayLayers()field.static VkImageCreateInfocalloc()Returns a newVkImageCreateInfoinstance allocated withmemCalloc.static VkImageCreateInfo.Buffercalloc(int capacity) Returns a newVkImageCreateInfo.Bufferinstance allocated withmemCalloc.static VkImageCreateInfo.Buffercalloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkImageCreateInfo.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.static VkImageCreateInfocalloc(org.lwjgl.system.MemoryStack stack) Returns a newVkImageCreateInfoinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.static VkImageCreateInfoDeprecated.static VkImageCreateInfo.BuffercallocStack(int capacity) Deprecated.static VkImageCreateInfo.BuffercallocStack(int capacity, org.lwjgl.system.MemoryStack stack) Deprecated.static VkImageCreateInfocallocStack(org.lwjgl.system.MemoryStack stack) Deprecated.static VkImageCreateInfocreate()Returns a newVkImageCreateInfoinstance allocated withBufferUtils.static VkImageCreateInfo.Buffercreate(int capacity) Returns a newVkImageCreateInfo.Bufferinstance allocated withBufferUtils.static VkImageCreateInfocreate(long address) Returns a newVkImageCreateInfoinstance for the specified memory address.static VkImageCreateInfo.Buffercreate(long address, int capacity) Create aVkImageCreateInfo.Bufferinstance at the specified memory.static @Nullable VkImageCreateInfocreateSafe(long address) static @Nullable VkImageCreateInfo.BuffercreateSafe(long address, int capacity) extent()aVkExtent3Ddescribing the number of data elements in each dimension of the base level.extent(Consumer<VkExtent3D> consumer) extent(VkExtent3D value) Copies the specifiedVkExtent3Dto theextent()field.intflags()a bitmask ofVkImageCreateFlagBitsdescribing additional parameters of the image.flags(int value) Sets the specified value to theflags()field.intformat()aVkFormatdescribing the format and type of the texel blocks that will be contained in the image.format(int value) Sets the specified value to theformat()field.intaVkImageTypevalue specifying the basic dimensionality of the image.imageType(int value) Sets the specified value to theimageType()field.intaVkImageLayoutvalue specifying the initialVkImageLayoutof all image subresources of the image.initialLayout(int value) Sets the specified value to theinitialLayout()field.static VkImageCreateInfomalloc()Returns a newVkImageCreateInfoinstance allocated withmemAlloc.static VkImageCreateInfo.Buffermalloc(int capacity) Returns a newVkImageCreateInfo.Bufferinstance allocated withmemAlloc.static VkImageCreateInfo.Buffermalloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkImageCreateInfo.Bufferinstance allocated on the specifiedMemoryStack.static VkImageCreateInfomalloc(org.lwjgl.system.MemoryStack stack) Returns a newVkImageCreateInfoinstance allocated on the specifiedMemoryStack.static VkImageCreateInfoDeprecated.static VkImageCreateInfo.BuffermallocStack(int capacity) Deprecated.static VkImageCreateInfo.BuffermallocStack(int capacity, org.lwjgl.system.MemoryStack stack) Deprecated.static VkImageCreateInfomallocStack(org.lwjgl.system.MemoryStack stack) Deprecated.intdescribes the number of levels of detail available for minified sampling of the image.mipLevels(int value) Sets the specified value to themipLevels()field.static intnarrayLayers(long struct) Unsafe version ofarrayLayers().static voidnarrayLayers(long struct, int value) Unsafe version ofarrayLayers.static VkExtent3Dnextent(long struct) Unsafe version ofextent().static voidnextent(long struct, VkExtent3D value) Unsafe version ofextent.static intnflags(long struct) Unsafe version offlags().static voidnflags(long struct, int value) Unsafe version offlags.static intnformat(long struct) Unsafe version offormat().static voidnformat(long struct, int value) Unsafe version offormat.static intnimageType(long struct) Unsafe version ofimageType().static voidnimageType(long struct, int value) Unsafe version ofimageType.static intninitialLayout(long struct) Unsafe version ofinitialLayout().static voidninitialLayout(long struct, int value) Unsafe version ofinitialLayout.static intnmipLevels(long struct) Unsafe version ofmipLevels().static voidnmipLevels(long struct, int value) Unsafe version ofmipLevels.static longnpNext(long struct) Unsafe version ofpNext().static voidnpNext(long struct, long value) Unsafe version ofpNext.static @Nullable IntBuffernpQueueFamilyIndices(long struct) Unsafe version ofpQueueFamilyIndices.static voidnpQueueFamilyIndices(long struct, @Nullable IntBuffer value) Unsafe version ofpQueueFamilyIndices.static intnqueueFamilyIndexCount(long struct) Unsafe version ofqueueFamilyIndexCount().static voidnqueueFamilyIndexCount(long struct, int value) Sets the specified value to thequeueFamilyIndexCountfield of the specifiedstruct.static intnsamples(long struct) Unsafe version ofsamples().static voidnsamples(long struct, int value) Unsafe version ofsamples.static intnsharingMode(long struct) Unsafe version ofsharingMode().static voidnsharingMode(long struct, int value) Unsafe version ofsharingMode.static intnsType(long struct) Unsafe version ofsType().static voidnsType(long struct, int value) Unsafe version ofsType.static intntiling(long struct) Unsafe version oftiling().static voidntiling(long struct, int value) Unsafe version oftiling.static intnusage(long struct) Unsafe version ofusage().static voidnusage(long struct, int value) Unsafe version ofusage.longpNext()NULLor a pointer to a structure extending this structure.pNext(long value) Sets the specified value to thepNext()field.Prepends the specifiedVkDedicatedAllocationImageCreateInfoNVvalue to thepNextchain.Prepends the specifiedVkExportMetalObjectCreateInfoEXTvalue to thepNextchain.pNext(VkExternalFormatANDROID value) Prepends the specifiedVkExternalFormatANDROIDvalue to thepNextchain.Prepends the specifiedVkExternalMemoryImageCreateInfovalue to thepNextchain.Prepends the specifiedVkExternalMemoryImageCreateInfoKHRvalue to thepNextchain.Prepends the specifiedVkExternalMemoryImageCreateInfoNVvalue to thepNextchain.Prepends the specifiedVkImageAlignmentControlCreateInfoMESAvalue to thepNextchain.Prepends the specifiedVkImageCompressionControlEXTvalue to thepNextchain.Prepends the specifiedVkImageDrmFormatModifierExplicitCreateInfoEXTvalue to thepNextchain.Prepends the specifiedVkImageDrmFormatModifierListCreateInfoEXTvalue to thepNextchain.pNext(VkImageFormatListCreateInfo value) Prepends the specifiedVkImageFormatListCreateInfovalue to thepNextchain.Prepends the specifiedVkImageFormatListCreateInfoKHRvalue to thepNextchain.Prepends the specifiedVkImageStencilUsageCreateInfovalue to thepNextchain.Prepends the specifiedVkImageStencilUsageCreateInfoEXTvalue to thepNextchain.Prepends the specifiedVkImageSwapchainCreateInfoKHRvalue to thepNextchain.Prepends the specifiedVkImportMetalIOSurfaceInfoEXTvalue to thepNextchain.pNext(VkImportMetalTextureInfoEXT value) Prepends the specifiedVkImportMetalTextureInfoEXTvalue to thepNextchain.Prepends the specifiedVkOpaqueCaptureDescriptorDataCreateInfoEXTvalue to thepNextchain.Prepends the specifiedVkOpticalFlowImageFormatInfoNVvalue to thepNextchain.pNext(VkVideoProfileListInfoKHR value) Prepends the specifiedVkVideoProfileListInfoKHRvalue to thepNextchain.@Nullable IntBuffera pointer to an array of queue families that will access this image.pQueueFamilyIndices(@Nullable IntBuffer value) Sets the address of the specifiedIntBufferto thepQueueFamilyIndices()field.intthe number of entries in thepQueueFamilyIndicesarray.queueFamilyIndexCount(int value) Sets the specified value to thequeueFamilyIndexCount()field.intsamples()aVkSampleCountFlagBitsvalue specifying the number of samples per texel.samples(int value) Sets the specified value to thesamples()field.set(int sType, long pNext, int flags, int imageType, int format, VkExtent3D extent, int mipLevels, int arrayLayers, int samples, int tiling, int usage, int sharingMode, int queueFamilyIndexCount, @Nullable IntBuffer pQueueFamilyIndices, int initialLayout) Initializes this struct with the specified values.set(VkImageCreateInfo src) Copies the specified struct data to this struct.intaVkSharingModevalue specifying the sharing mode of the image when it will be accessed by multiple queue families.sharingMode(int value) Sets the specified value to thesharingMode()field.intsizeof()intsType()aVkStructureTypevalue identifying this structure.sType(int value) Sets the specified value to thesType()field.Sets theSTRUCTURE_TYPE_IMAGE_CREATE_INFOvalue to thesType()field.inttiling()aVkImageTilingvalue specifying the tiling arrangement of the texel blocks in memory.tiling(int value) Sets the specified value to thetiling()field.intusage()a bitmask ofVkImageUsageFlagBitsdescribing the intended usage of the image.usage(int value) Sets the specified value to theusage()field.Methods inherited from class org.lwjgl.system.Struct
clear, free, isNull, validate, validateMethods inherited from class org.lwjgl.system.Pointer.Default
address, equals, hashCode, toStringMethods inherited from interface org.lwjgl.system.NativeResource
close, free
-
Field Details
-
SIZEOF
public static final int SIZEOFThe struct size in bytes. -
ALIGNOF
public static final int ALIGNOFThe struct alignment in bytes. -
STYPE
public static final int STYPEThe struct member offsets. -
PNEXT
public static final int PNEXTThe struct member offsets. -
FLAGS
public static final int FLAGSThe struct member offsets. -
IMAGETYPE
public static final int IMAGETYPEThe struct member offsets. -
FORMAT
public static final int FORMATThe struct member offsets. -
EXTENT
public static final int EXTENTThe struct member offsets. -
MIPLEVELS
public static final int MIPLEVELSThe struct member offsets. -
ARRAYLAYERS
public static final int ARRAYLAYERSThe struct member offsets. -
SAMPLES
public static final int SAMPLESThe struct member offsets. -
TILING
public static final int TILINGThe struct member offsets. -
USAGE
public static final int USAGEThe struct member offsets. -
SHARINGMODE
public static final int SHARINGMODEThe struct member offsets. -
QUEUEFAMILYINDEXCOUNT
public static final int QUEUEFAMILYINDEXCOUNTThe struct member offsets. -
PQUEUEFAMILYINDICES
public static final int PQUEUEFAMILYINDICESThe struct member offsets. -
INITIALLAYOUT
public static final int INITIALLAYOUTThe struct member offsets.
-
-
Constructor Details
-
VkImageCreateInfo
Creates aVkImageCreateInfoinstance at the current position of the specifiedByteBuffercontainer. Changes to the buffer's content will be visible to the struct instance and vice versa.The created instance holds a strong reference to the container object.
-
-
Method Details
-
sizeof
public int sizeof()- Specified by:
sizeofin classorg.lwjgl.system.Struct<VkImageCreateInfo>
-
sType
public int sType()aVkStructureTypevalue identifying this structure. -
pNext
public long pNext()NULLor a pointer to a structure extending this structure. -
flags
public int flags()a bitmask ofVkImageCreateFlagBitsdescribing additional parameters of the image. -
imageType
public int imageType()aVkImageTypevalue 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
public int format()aVkFormatdescribing the format and type of the texel blocks that will be contained in the image. -
extent
aVkExtent3Ddescribing the number of data elements in each dimension of the base level. -
mipLevels
public int mipLevels()describes the number of levels of detail available for minified sampling of the image. -
arrayLayers
public int arrayLayers()the number of layers in the image. -
samples
public int samples()aVkSampleCountFlagBitsvalue specifying the number of samples per texel. -
tiling
public int tiling()aVkImageTilingvalue specifying the tiling arrangement of the texel blocks in memory. -
usage
public int usage()a bitmask ofVkImageUsageFlagBitsdescribing the intended usage of the image. -
sharingMode
public int sharingMode()aVkSharingModevalue specifying the sharing mode of the image when it will be accessed by multiple queue families. -
queueFamilyIndexCount
public int queueFamilyIndexCount()the number of entries in thepQueueFamilyIndicesarray. -
pQueueFamilyIndices
a pointer to an array of queue families that will access this image. It is ignored ifsharingModeis notSHARING_MODE_CONCURRENT. -
initialLayout
public int initialLayout()aVkImageLayoutvalue specifying the initialVkImageLayoutof all image subresources of the image. See Image Layouts. -
sType
Sets the specified value to thesType()field. -
sType$Default
Sets theSTRUCTURE_TYPE_IMAGE_CREATE_INFOvalue to thesType()field. -
pNext
Sets the specified value to thepNext()field. -
pNext
Prepends the specifiedVkDedicatedAllocationImageCreateInfoNVvalue to thepNextchain. -
pNext
Prepends the specifiedVkExportMetalObjectCreateInfoEXTvalue to thepNextchain. -
pNext
Prepends the specifiedVkExternalFormatANDROIDvalue to thepNextchain. -
pNext
Prepends the specifiedVkExternalMemoryImageCreateInfovalue to thepNextchain. -
pNext
Prepends the specifiedVkExternalMemoryImageCreateInfoKHRvalue to thepNextchain. -
pNext
Prepends the specifiedVkExternalMemoryImageCreateInfoNVvalue to thepNextchain. -
pNext
Prepends the specifiedVkImageAlignmentControlCreateInfoMESAvalue to thepNextchain. -
pNext
Prepends the specifiedVkImageCompressionControlEXTvalue to thepNextchain. -
pNext
Prepends the specifiedVkImageDrmFormatModifierExplicitCreateInfoEXTvalue to thepNextchain. -
pNext
Prepends the specifiedVkImageDrmFormatModifierListCreateInfoEXTvalue to thepNextchain. -
pNext
Prepends the specifiedVkImageFormatListCreateInfovalue to thepNextchain. -
pNext
Prepends the specifiedVkImageFormatListCreateInfoKHRvalue to thepNextchain. -
pNext
Prepends the specifiedVkImageStencilUsageCreateInfovalue to thepNextchain. -
pNext
Prepends the specifiedVkImageStencilUsageCreateInfoEXTvalue to thepNextchain. -
pNext
Prepends the specifiedVkImageSwapchainCreateInfoKHRvalue to thepNextchain. -
pNext
Prepends the specifiedVkImportMetalIOSurfaceInfoEXTvalue to thepNextchain. -
pNext
Prepends the specifiedVkImportMetalTextureInfoEXTvalue to thepNextchain. -
pNext
Prepends the specifiedVkOpaqueCaptureDescriptorDataCreateInfoEXTvalue to thepNextchain. -
pNext
Prepends the specifiedVkOpticalFlowImageFormatInfoNVvalue to thepNextchain. -
pNext
Prepends the specifiedVkVideoProfileListInfoKHRvalue to thepNextchain. -
flags
Sets the specified value to theflags()field. -
imageType
Sets the specified value to theimageType()field. -
format
Sets the specified value to theformat()field. -
extent
Copies the specifiedVkExtent3Dto theextent()field. -
extent
-
mipLevels
Sets the specified value to themipLevels()field. -
arrayLayers
Sets the specified value to thearrayLayers()field. -
samples
Sets the specified value to thesamples()field. -
tiling
Sets the specified value to thetiling()field. -
usage
Sets the specified value to theusage()field. -
sharingMode
Sets the specified value to thesharingMode()field. -
queueFamilyIndexCount
Sets the specified value to thequeueFamilyIndexCount()field. -
pQueueFamilyIndices
Sets the address of the specifiedIntBufferto thepQueueFamilyIndices()field. -
initialLayout
Sets the specified value to theinitialLayout()field. -
set
public VkImageCreateInfo set(int sType, long pNext, int flags, int imageType, int format, VkExtent3D extent, int mipLevels, int arrayLayers, int samples, int tiling, int usage, int sharingMode, int queueFamilyIndexCount, @Nullable IntBuffer pQueueFamilyIndices, int initialLayout) Initializes this struct with the specified values. -
set
Copies the specified struct data to this struct.- Parameters:
src- the source struct- Returns:
- this struct
-
malloc
Returns a newVkImageCreateInfoinstance allocated withmemAlloc. The instance must be explicitly freed. -
calloc
Returns a newVkImageCreateInfoinstance allocated withmemCalloc. The instance must be explicitly freed. -
create
Returns a newVkImageCreateInfoinstance allocated withBufferUtils. -
create
Returns a newVkImageCreateInfoinstance for the specified memory address. -
createSafe
-
malloc
Returns a newVkImageCreateInfo.Bufferinstance allocated withmemAlloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
calloc
Returns a newVkImageCreateInfo.Bufferinstance allocated withmemCalloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
create
Returns a newVkImageCreateInfo.Bufferinstance allocated withBufferUtils.- Parameters:
capacity- the buffer capacity
-
create
Create aVkImageCreateInfo.Bufferinstance at the specified memory.- Parameters:
address- the memory addresscapacity- the buffer capacity
-
createSafe
-
mallocStack
Deprecated.Deprecated for removal in 3.4.0. Usemalloc(MemoryStack)instead. -
callocStack
Deprecated.Deprecated for removal in 3.4.0. Usecalloc(MemoryStack)instead. -
mallocStack
Deprecated.Deprecated for removal in 3.4.0. Usemalloc(MemoryStack)instead. -
callocStack
Deprecated.Deprecated for removal in 3.4.0. Usecalloc(MemoryStack)instead. -
mallocStack
Deprecated.Deprecated for removal in 3.4.0. Usemalloc(int, MemoryStack)instead. -
callocStack
Deprecated.Deprecated for removal in 3.4.0. Usecalloc(int, MemoryStack)instead. -
mallocStack
@Deprecated public static VkImageCreateInfo.Buffer mallocStack(int capacity, org.lwjgl.system.MemoryStack stack) Deprecated.Deprecated for removal in 3.4.0. Usemalloc(int, MemoryStack)instead. -
callocStack
@Deprecated public static VkImageCreateInfo.Buffer callocStack(int capacity, org.lwjgl.system.MemoryStack stack) Deprecated.Deprecated for removal in 3.4.0. Usecalloc(int, MemoryStack)instead. -
malloc
Returns a newVkImageCreateInfoinstance allocated on the specifiedMemoryStack.- Parameters:
stack- the stack from which to allocate
-
calloc
Returns a newVkImageCreateInfoinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
stack- the stack from which to allocate
-
malloc
Returns a newVkImageCreateInfo.Bufferinstance allocated on the specifiedMemoryStack.- Parameters:
capacity- the buffer capacitystack- the stack from which to allocate
-
calloc
Returns a newVkImageCreateInfo.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
capacity- the buffer capacitystack- the stack from which to allocate
-
nsType
public static int nsType(long struct) Unsafe version ofsType(). -
npNext
public static long npNext(long struct) Unsafe version ofpNext(). -
nflags
public static int nflags(long struct) Unsafe version offlags(). -
nimageType
public static int nimageType(long struct) Unsafe version ofimageType(). -
nformat
public static int nformat(long struct) Unsafe version offormat(). -
nextent
Unsafe version ofextent(). -
nmipLevels
public static int nmipLevels(long struct) Unsafe version ofmipLevels(). -
narrayLayers
public static int narrayLayers(long struct) Unsafe version ofarrayLayers(). -
nsamples
public static int nsamples(long struct) Unsafe version ofsamples(). -
ntiling
public static int ntiling(long struct) Unsafe version oftiling(). -
nusage
public static int nusage(long struct) Unsafe version ofusage(). -
nsharingMode
public static int nsharingMode(long struct) Unsafe version ofsharingMode(). -
nqueueFamilyIndexCount
public static int nqueueFamilyIndexCount(long struct) Unsafe version ofqueueFamilyIndexCount(). -
npQueueFamilyIndices
Unsafe version ofpQueueFamilyIndices. -
ninitialLayout
public static int ninitialLayout(long struct) Unsafe version ofinitialLayout(). -
nsType
public static void nsType(long struct, int value) Unsafe version ofsType. -
npNext
public static void npNext(long struct, long value) Unsafe version ofpNext. -
nflags
public static void nflags(long struct, int value) Unsafe version offlags. -
nimageType
public static void nimageType(long struct, int value) Unsafe version ofimageType. -
nformat
public static void nformat(long struct, int value) Unsafe version offormat. -
nextent
Unsafe version ofextent. -
nmipLevels
public static void nmipLevels(long struct, int value) Unsafe version ofmipLevels. -
narrayLayers
public static void narrayLayers(long struct, int value) Unsafe version ofarrayLayers. -
nsamples
public static void nsamples(long struct, int value) Unsafe version ofsamples. -
ntiling
public static void ntiling(long struct, int value) Unsafe version oftiling. -
nusage
public static void nusage(long struct, int value) Unsafe version ofusage. -
nsharingMode
public static void nsharingMode(long struct, int value) Unsafe version ofsharingMode. -
nqueueFamilyIndexCount
public static void nqueueFamilyIndexCount(long struct, int value) Sets the specified value to thequeueFamilyIndexCountfield of the specifiedstruct. -
npQueueFamilyIndices
Unsafe version ofpQueueFamilyIndices. -
ninitialLayout
public static void ninitialLayout(long struct, int value) Unsafe version ofinitialLayout.
-