98 lines
3.6 KiB
Plaintext
98 lines
3.6 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/
|
|
|
|
VkImageMemoryBarrier(3)
|
|
=======================
|
|
|
|
Name
|
|
----
|
|
VkImageMemoryBarrier - Structure specifying the parameters of an image memory barrier.
|
|
|
|
C Specification
|
|
---------------
|
|
|
|
// refBegin VkImageMemoryBarrier Structure specifying the parameters of an image memory barrier.
|
|
|
|
The sname:VkImageMemoryBarrier structure is defined as:
|
|
|
|
include::../api/structs/VkImageMemoryBarrier.txt[]
|
|
|
|
|
|
Members
|
|
-------
|
|
|
|
* pname:sType is the type of this structure.
|
|
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
|
* pname:srcAccessMask is a bitmask of the classes of memory accesses
|
|
performed by the first set of commands that will participate in
|
|
the dependency.
|
|
* pname:dstAccessMask is a bitmask of the classes of memory accesses
|
|
performed by the second set of commands that will participate in
|
|
the dependency.
|
|
* pname:oldLayout describes the current layout of the image
|
|
subresource(s).
|
|
* pname:newLayout describes the new layout of the image subresource(s).
|
|
* pname:srcQueueFamilyIndex is the queue family that is relinquishing
|
|
ownership of the image subresource(s) to another queue, or
|
|
ename:VK_QUEUE_FAMILY_IGNORED if there is no transfer of ownership).
|
|
* pname:dstQueueFamilyIndex is the queue family that is acquiring
|
|
ownership of the image subresource(s) from another queue, or
|
|
ename:VK_QUEUE_FAMILY_IGNORED if there is no transfer of ownership).
|
|
* pname:image is a handle to the image whose backing memory is affected by
|
|
the barrier.
|
|
* pname:subresourceRange describes an area of the backing memory for
|
|
pname:image (see <<resources-image-views>> for the description of
|
|
sname:VkImageSubresourceRange), as well as the set of image subresources
|
|
whose image layouts are modified.
|
|
|
|
|
|
Description
|
|
-----------
|
|
|
|
If pname:oldLayout differs from pname:newLayout, a layout transition occurs
|
|
as part of the image memory barrier, affecting the data contained in the
|
|
region of the image defined by the pname:subresourceRange. If
|
|
pname:oldLayout is ename:VK_IMAGE_LAYOUT_UNDEFINED, then the data is
|
|
undefined after the layout transition. This may: allow a more efficient
|
|
transition, since the data may: be discarded. The layout transition must:
|
|
occur after all operations using the old layout are completed and before all
|
|
operations using the new layout are started. This is achieved by ensuring
|
|
that there is a memory dependency between previous accesses and the layout
|
|
transition, as well as between the layout transition and subsequent
|
|
accesses, where the layout transition occurs between the two halves of a
|
|
memory dependency in an image memory barrier.
|
|
|
|
Layout transitions that are performed via image memory barriers are
|
|
automatically ordered against other layout transitions, including those that
|
|
occur as part of a render pass instance.
|
|
|
|
[NOTE]
|
|
.Note
|
|
====
|
|
See <<resources-image-layouts>> for details on available image layouts
|
|
and their usages.
|
|
====
|
|
|
|
include::../validity/structs/VkImageMemoryBarrier.txt[]
|
|
|
|
|
|
See Also
|
|
--------
|
|
|
|
elink:VkAccessFlags, slink:VkImage, elink:VkImageLayout, slink:VkImageSubresourceRange, elink:VkStructureType, flink:vkCmdPipelineBarrier, flink:vkCmdWaitEvents
|
|
|
|
|
|
Document Notes
|
|
--------------
|
|
|
|
For more information, see the Vulkan Specification at URL
|
|
|
|
https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#VkImageMemoryBarrier
|
|
|
|
This page is extracted from the Vulkan Specification.
|
|
Fixes and changes should be made to the Specification,not directly.
|
|
|
|
include::footer.txt[]
|
|
|