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

Vulkan.Extensions.VK_EXT_external_memory_acquire_unmodified

Description

Name

VK_EXT_external_memory_acquire_unmodified - device extension

VK_EXT_external_memory_acquire_unmodified

Name String
VK_EXT_external_memory_acquire_unmodified
Extension Type
Device extension
Registered Extension Number
454
Revision
1
Ratification Status
Ratified
Extension and Version Dependencies
VK_KHR_external_memory
Contact
Extension Proposal
VK_EXT_external_memory_acquire_unmodified

Other Extension Metadata

Last Modified Date
2023-03-09
Contributors
  • Lina Versace, Google
  • Chia-I Wu, Google
  • James Jones, NVIDIA
  • Yiwei Zhang, Google

Description

A memory barrier may have a performance penalty when acquiring ownership of a subresource range from an external queue family. This extension provides API that may reduce the performance penalty if ownership of the subresource range was previously released to the external queue family and if the resource’s memory has remained unmodified between the release and acquire operations.

New Structures

New Enum Constants

Version History

  • Revision 1, 2023-03-09 (Lina Versace)

    • Initial revision

See Also

ExternalMemoryAcquireUnmodifiedEXT

Document Notes

For more information, see the Vulkan Specification

This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.

Synopsis

Documentation

data ExternalMemoryAcquireUnmodifiedEXT Source #

VkExternalMemoryAcquireUnmodifiedEXT - Structure specifying that external memory has remained unmodified since releasing ownership

Description

If the application releases ownership of the subresource range to one of the special queue families reserved for external memory ownership transfers with a memory barrier structure, and later re-acquires ownership from the same queue family with a memory barrier structure, and if no range of DeviceMemory bound to the resource was modified at any time between the release operation and the acquire operation, then the application should add a ExternalMemoryAcquireUnmodifiedEXT structure to the pNext chain of the acquire operation's memory barrier structure because this may reduce the performance penalty.

This struct is ignored if acquireUnmodifiedMemory is FALSE. In particular, FALSE does not specify that memory was modified.

This struct is ignored if the memory barrier’s srcQueueFamilyIndex is not a special queue family reserved for external memory ownership transfers.

Note

The method by which the application determines whether memory was modified between the release operation and acquire operation is outside the scope of Vulkan.

For any Vulkan operation that accesses a resource, the application must not assume the implementation accesses the resource’s memory as read-only, even for apparently read-only operations such as transfer commands and shader reads.

The validity of ExternalMemoryAcquireUnmodifiedEXT::acquireUnmodifiedMemory is independent of memory ranges outside the ranges of DeviceMemory bound to the resource. In particular, it is independent of any implementation-private memory associated with the resource.

Valid Usage

Valid Usage (Implicit)

See Also

VK_EXT_external_memory_acquire_unmodified, Bool32, StructureType

Constructors

ExternalMemoryAcquireUnmodifiedEXT 

Fields

  • acquireUnmodifiedMemory :: Bool

    acquireUnmodifiedMemory specifies, if TRUE, that no range of DeviceMemory bound to the resource of the memory barrier’s subresource range was modified at any time since the resource’s most recent release of ownership to the queue family specified by the memory barrier’s srcQueueFamilyIndex. If FALSE, it specifies nothing.

Instances

Instances details
Storable ExternalMemoryAcquireUnmodifiedEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_external_memory_acquire_unmodified

Show ExternalMemoryAcquireUnmodifiedEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_external_memory_acquire_unmodified

Eq ExternalMemoryAcquireUnmodifiedEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_external_memory_acquire_unmodified

FromCStruct ExternalMemoryAcquireUnmodifiedEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_external_memory_acquire_unmodified

ToCStruct ExternalMemoryAcquireUnmodifiedEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_external_memory_acquire_unmodified

Zero ExternalMemoryAcquireUnmodifiedEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_external_memory_acquire_unmodified

type EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXTENSION_NAME = "VK_EXT_external_memory_acquire_unmodified" Source #