Class VkImageCreateInfo

java.lang.Object
org.lwjgl.system.Pointer.Default
org.lwjgl.system.Struct<VkImageCreateInfo>
org.lwjgl.vulkan.VkImageCreateInfo
All Implemented Interfaces:
AutoCloseable, org.lwjgl.system.NativeResource, org.lwjgl.system.Pointer

public class VkImageCreateInfo extends org.lwjgl.system.Struct<VkImageCreateInfo> implements org.lwjgl.system.NativeResource
Structure specifying the parameters of a newly created image object.
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:

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:

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.

Valid Usage
Valid Usage (Implicit)
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();
 }