87 lines
4.2 KiB
Plaintext
87 lines
4.2 KiB
Plaintext
VkImageLayout(3)
|
|
================
|
|
|
|
Name
|
|
----
|
|
VkImageLayout - Specifies what layout an image object (or a sub-range of it) is in.
|
|
|
|
C Specification
|
|
---------------
|
|
|
|
include::../enums/VkImageLayout.txt[]
|
|
|
|
Constants
|
|
---------
|
|
|
|
VK_IMAGE_LAYOUT_UNDEFINED::
|
|
The contents of images (or a sub-range of it) in this layout are undefined. +
|
|
This is the layout all images are assumed to be in right after creation, or when their memory
|
|
binding is changed. +
|
|
Any operation performed on an image sub-range in this layout leaves the contents of it undefined.
|
|
Applications need to transition an image sub-range to another layout before being able to perform
|
|
any operations on it that should result in defined contents.
|
|
|
|
VK_IMAGE_LAYOUT_GENERAL::
|
|
An image (or a sub-range of it) in this layout allows all operations to be performed on the image
|
|
sub-range that is otherwise permitted by the usage flags the image object was created with (see
|
|
elink:VkImageUsageFlags for more detail).
|
|
|
|
VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL::
|
|
An image (or a sub-range of it) in this layout can only be used as a framebuffer color attachment
|
|
and as such can only be accessed through framebuffer color reads and writes resulting from the
|
|
issuing of draw commands, fname:vkCmdClearAttachments, and through clearing writes resulting from the use of
|
|
the ename:VK_ATTACHMENT_LOAD_OP_CLEAR framebuffer attachment load operation.
|
|
|
|
VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL::
|
|
An image (or a sub-range of it) in this layout can only be used as a framebuffer depth/stencil
|
|
attachment and as such can only be accessed through framebuffer depth/stencil reads and writes
|
|
resulting from the issuing of draw commands, fname:vkCmdClearAttachments, and through clearing writes resulting from the use of
|
|
the ename:VK_ATTACHMENT_LOAD_OP_CLEAR framebuffer attachment load operation.
|
|
|
|
VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL::
|
|
An image (or a sub-range of it) in this layout can only be used as a read-only framebuffer
|
|
depth/stencil attachment and as such can only be accessed through framebuffer depth/stencil reads
|
|
resulting from the issuing of draw commands, and through shader reads done via a sampled image
|
|
descriptor, combined image sampler descriptor, or read-only storage image descriptor (see
|
|
elink:VkDescriptorType for more detail).
|
|
|
|
VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL::
|
|
An image (or a sub-range of it) in this layout can only be used as a read-only shader resource and
|
|
as such can only be accessed by shader reads done via a sampled image descriptor, combined image
|
|
sampler descriptor, or read-only storage image descriptor (see elink:VkDescriptorType for more detail).
|
|
|
|
VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL::
|
|
An image (or a sub-range of it) in this layout can only be used as the source operand of the
|
|
commands flink:vkCmdCopyImage, flink:vkCmdBlitImage, flink:vkCmdCopyImageToBuffer,
|
|
and flink:vkCmdResolveImage.
|
|
|
|
VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL::
|
|
An image (or a sub-range of it) in this layout can only be used as the destination operand of the
|
|
commands flink:vkCmdCopyImage, flink:vkCmdBlitImage, flink:vkCmdCopyBufferToImage, flink:vkCmdResolveImage,
|
|
flink:vkCmdClearColorImage, and flink:vkCmdClearDepthStencilImage.
|
|
|
|
Description
|
|
-----------
|
|
|
|
The constants of this enumeration are used to identify the layout an image object (or a sub-range of it)
|
|
is expected to be in at any given time, or used to specify the destination layout an image sub-range
|
|
should be transitioned to as the result of an image memory barrier (see slink:VkImageMemoryBarrier for more
|
|
details).
|
|
|
|
Performing any operation on an image sub-range that isn't permitted by the layout the image sub-range is
|
|
currently in is undefined.
|
|
|
|
If any operation tries to read from an image sub-range that isn't in the expected image layout results
|
|
in undefined data to be returned as the result of the read.
|
|
|
|
If any operation tries to write to or perform an atomic operation on an image sub-range that isn't in the
|
|
expected image layout results in the contents of the whole image to become undefined, i.e. the whole image
|
|
is logically transitioned to the ename:VK_IMAGE_LAYOUT_UNDEFINED layout.
|
|
|
|
See Also
|
|
--------
|
|
|
|
slink:VkImageMemoryBarrier
|
|
|
|
include::footer.txt[]
|