vulkan-3.26.1: Bindings to the Vulkan graphics API.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Vulkan.Core10.Enums.SharingMode

Synopsis

Documentation

newtype SharingMode Source #

VkSharingMode - Buffer and image sharing modes

Description

Note

SHARING_MODE_CONCURRENT may result in lower performance access to the buffer or image than SHARING_MODE_EXCLUSIVE.

Ranges of buffers and image subresources of image objects created using 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 SHARING_MODE_EXCLUSIVE is owned by some queue family, the application must perform a queue family ownership transfer to make the memory contents of a range or image subresource accessible to a different queue family.

Note

Images still require a layout transition from IMAGE_LAYOUT_UNDEFINED or IMAGE_LAYOUT_PREINITIALIZED before being used on the first queue.

A queue family can take ownership of an image subresource or buffer range of a resource created with 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 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.

See Also

VK_VERSION_1_0, BufferCreateInfo, ImageCreateInfo, PhysicalDeviceImageDrmFormatModifierInfoEXT, SwapchainCreateInfoKHR

Constructors

SharingMode Int32 

Bundled Patterns

pattern SHARING_MODE_EXCLUSIVE :: SharingMode

SHARING_MODE_EXCLUSIVE specifies that access to any range or image subresource of the object will be exclusive to a single queue family at a time.

pattern SHARING_MODE_CONCURRENT :: SharingMode

SHARING_MODE_CONCURRENT specifies that concurrent access to any range or image subresource of the object from multiple queue families is supported.

Instances

Instances details
Storable SharingMode Source # 
Instance details

Defined in Vulkan.Core10.Enums.SharingMode

Read SharingMode Source # 
Instance details

Defined in Vulkan.Core10.Enums.SharingMode

Show SharingMode Source # 
Instance details

Defined in Vulkan.Core10.Enums.SharingMode

Eq SharingMode Source # 
Instance details

Defined in Vulkan.Core10.Enums.SharingMode

Ord SharingMode Source # 
Instance details

Defined in Vulkan.Core10.Enums.SharingMode

Zero SharingMode Source # 
Instance details

Defined in Vulkan.Core10.Enums.SharingMode