C Specification
Buffer and image objects are created with a sharing mode controlling how they can be accessed from queues. The supported sharing modes are:
// Provided by VK_VERSION_1_0
typedef enum VkSharingMode {
VK_SHARING_MODE_EXCLUSIVE = 0,
VK_SHARING_MODE_CONCURRENT = 1,
} VkSharingMode;
Description
-
VK_SHARING_MODE_EXCLUSIVEspecifies that access to any range or image subresource of the object will be exclusive to a single queue family at a time. -
VK_SHARING_MODE_CONCURRENTspecifies that concurrent access to any range or image subresource of the object from multiple queue families is supported.
|
Note
|
|
Ranges of buffers and image subresources of image objects created using
VK_SHARING_MODE_EXCLUSIVE must only be accessed by queues in the
queue family that has ownership of the resource.
Upon creation, such resources are not owned by any queue family; ownership
is implicitly acquired upon first use within a queue.
Once a resource using VK_SHARING_MODE_EXCLUSIVE is owned by some queue
family,
the application must perform a queue
family ownership transfer if it wishes to make the memory contents of a
range or image subresource accessible to a different queue family.
VK_SHARING_MODE_EXCLUSIVE resources that are already owned by a queue
family may be acquired by a different queue family without a queue family
ownership transfer, but
their contents become undefined.
|
Note
|
Before being used on the first queue, images still require a layout transition from these layouts:
|
A queue family can take ownership of an
image subresource
or buffer range of a resource created with VK_SHARING_MODE_EXCLUSIVE,
without an ownership transfer, in the same way as for a resource that was
just created; however, taking ownership in this way has the effect that the
contents of the image subresource or buffer range are undefined.
Ranges of
buffers
and image subresources of image objects created using
VK_SHARING_MODE_CONCURRENT must only be accessed by queues from the
queue families specified through the queueFamilyIndexCount and
pQueueFamilyIndices members of the corresponding create info
structures.
Document Notes
For more information, see the Vulkan Specification
This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.