HORIZON HASKELLDocslts/ghc-9.14.x45dd5372026-10-11Search names, modules, packages, or :: a typeCtrl K

GHC 9.14.1 · lts/ghc-9.14.x · 45dd537 · 2026-10-11

Modulevulkan-3.27GHC2021

Vulkan.Extensions.VK_EXT_external_memory_acquire_unmodified

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

or

Vulkan Version 1.1

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

No cross-references are available

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.

  • 3 types
  • Packagevulkan-3.27
  • Exports5
  • LanguageGHC2021
  • LicenceBSD-3-Clause
  • SourceVK_EXT_external_memory_acquire_unmodified.hs

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 structure is ignored if acquireUnmodifiedMemory is FALSE. In particular, FALSE does not specify that memory was modified.

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

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)

Structure Chaining

Extends the structures

See Also

VK_EXT_external_memory_acquire_unmodified, Bool32, StructureType

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero