Modulevulkan-3.27GHC2021
Vulkan.Extensions.VK_KHR_external_memory_win32
Name
VK_KHR_external_memory_win32 - device extension
VK_KHR_external_memory_win32
- Name String
VK_KHR_external_memory_win32
- Extension Type
Device extension
- Registered Extension Number
74
- Revision
1
- Ratification Status
Ratified
- Extension and Version Dependencies
VK_KHR_external_memory
or
Vulkan Version 1.1
- Contact
Other Extension Metadata
- Last Modified Date
2016-10-21
- IP Status
No known IP claims.
- Contributors
James Jones, NVIDIA
Jeff Juliano, NVIDIA
Carsten Rohde, NVIDIA
Description
An application may wish to reference device memory in multiple Vulkan
logical devices or instances, in multiple processes, and/or in multiple
APIs. This extension enables an application to export Windows handles
from Vulkan memory objects and to import Vulkan memory objects from
Windows handles exported from other Vulkan memory objects or from
similar resources in other APIs.
New Commands
New Structures
New Enum Constants
Issues
1) Do applications need to call CloseHandle() on the values returned
from getMemoryWin32HandleKHR when handleType is
EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR?
RESOLVED: Yes. A successful get call transfers ownership of the
handle to the application. Destroying the memory object will not destroy
the handle or the handle’s reference to the underlying memory resource.
Unlike file descriptor opaque handles, win32 opaque handle ownership can
not be transferred back to a driver by an import operation.
2) Should the language regarding KMT/Windows 7 handles be moved to a
separate extension so that it can be deprecated over time?
RESOLVED: No. Support for them can be deprecated by drivers if they
choose, by no longer returning them in the supported handle types of the
instance level queries.
3) How should the valid size and memory type for windows memory handles
created outside of Vulkan be specified?
RESOLVED: The valid memory types are queried directly from the
external handle. The size is determined by the associated image or
buffer memory requirements for external handle types that require
dedicated allocations, and by the size specified when creating the
object from which the handle was exported for other external handle
types.
Version History
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.