Vulkan-Docs/doc/specs/vulkan/man/VkImageCreateInfo.txt

112 lines
4.5 KiB
Plaintext

// Copyright (c) 2014-2016 Khronos Group. This work is licensed under a
// Creative Commons Attribution 4.0 International License; see
// http://creativecommons.org/licenses/by/4.0/
VkImageCreateInfo(3)
====================
Name
----
VkImageCreateInfo - Structure specifying the parameters of a newly created image object.
C Specification
---------------
// refBegin VkImageCreateInfo Structure specifying the parameters of a newly created image object.
The sname:VkImageCreateInfo structure is defined as:
include::../api/structs/VkImageCreateInfo.txt[]
Members
-------
* pname:sType is the type of this structure.
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
* pname:flags is a bitmask describing additional parameters of the image.
See elink:VkImageCreateFlagBits below for a description of the supported
bits.
* pname:imageType is a elink:VkImageType specifying the basic
dimensionality of the image, as described below. Layers in array
textures do not count as a dimension for the purposes of the image type.
* pname:format is a elink:VkFormat describing the format and type of the
data elements that will be contained in the image.
* pname:extent is a slink:VkExtent3D describing the number of data
elements in each dimension of the base level.
* pname:mipLevels describes the number of levels of detail available for
minified sampling of the image.
* pname:arrayLayers is the number of layers in the image.
* pname:samples is the number of sub-data element samples in the image as
defined in elink:VkSampleCountFlagBits. See
<<primsrast-multisampling,Multisampling>>.
* pname:tiling is a elink:VkImageTiling specifying the tiling arrangement
of the data elements in memory, as described below.
* pname:usage is a bitmask describing the intended usage of the image.
See elink:VkImageUsageFlagBits below for a description of the supported
bits.
* pname:sharingMode is the sharing mode of the image when it will be
accessed by multiple queue families, and must: be one of the values
described for elink:VkSharingMode in the <<resources-sharing,Resource
Sharing>> section below.
* pname:queueFamilyIndexCount is the number of entries in the
pname:pQueueFamilyIndices array.
* pname:pQueueFamilyIndices is a list of queue families that will
access this image (ignored if pname:sharingMode is not
ename:VK_SHARING_MODE_CONCURRENT).
* pname:initialLayout selects the initial elink:VkImageLayout state of all
image subresources of the image. See <<resources-image-layouts,Image
Layouts>>. pname:initialLayout must: be ename:VK_IMAGE_LAYOUT_UNDEFINED
or ename:VK_IMAGE_LAYOUT_PREINITIALIZED.
Description
-----------
Valid limits for the image pname:extent, pname:mipLevels, pname:arrayLayers
and pname:samples members are queried with the
flink:vkGetPhysicalDeviceImageFormatProperties command.
Images created with pname:tiling equal to ename:VK_IMAGE_TILING_LINEAR have
further restrictions on their limits and capabilities compared to images
created with pname:tiling equal to ename:VK_IMAGE_TILING_OPTIMAL. Creation
of images with tiling ename:VK_IMAGE_TILING_LINEAR may: not be supported
unless other parameters meet all of the constraints:
* pname:imageType is ename:VK_IMAGE_TYPE_2D
* pname:format is not a depth/stencil format
* pname:mipLevels is 1
* pname:arrayLayers is 1
* pname:samples is ename:VK_SAMPLE_COUNT_1_BIT
* pname:usage only includes ename:VK_IMAGE_USAGE_TRANSFER_SRC_BIT
and/or ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT
Implementations may: support additional limits and capabilities beyond those
listed above. To determine the specific capabilities of an implementation,
query the valid pname:usage bits by calling
flink:vkGetPhysicalDeviceFormatProperties and the valid limits for
pname:mipLevels and pname:arrayLayers by calling
flink:vkGetPhysicalDeviceImageFormatProperties.
include::../validity/structs/VkImageCreateInfo.txt[]
See Also
--------
slink:VkExtent3D, elink:VkFormat, elink:VkImageCreateFlags, elink:VkImageLayout, elink:VkImageTiling, elink:VkImageType, elink:VkImageUsageFlags, elink:VkSampleCountFlagBits, elink:VkSharingMode, elink:VkStructureType, flink:vkCreateImage
Document Notes
--------------
For more information, see the Vulkan Specification at URL
https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#VkImageCreateInfo
This page is extracted from the Vulkan Specification.
Fixes and changes should be made to the Specification,not directly.
include::footer.txt[]