// Copyright 2016-2021 The Khronos Group, Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

include::{generated}/meta/{refprefix}VK_KHR_external_memory_fd.txt[]

=== Other Extension Metadata

*Last Modified Date*::
    2016-10-21
*IP Status*::
    No known IP claims.
*Contributors*::
  - James Jones, NVIDIA
  - Jeff Juliano, 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 POSIX file descriptor
handles from Vulkan memory objects and to import Vulkan memory objects from
POSIX file descriptor handles exported from other Vulkan memory objects or
from similar resources in other APIs.

include::{generated}/interfaces/VK_KHR_external_memory_fd.txt[]

=== Issues

1) Does the application need to close the file descriptor returned by
flink:vkGetMemoryFdKHR?

*RESOLVED*: Yes, unless it is passed back in to a driver instance to import
the memory.
A successful get call transfers ownership of the file descriptor to the
application, and a successful import transfers it back to the driver.
Destroying the original memory object will not close the file descriptor or
remove its reference to the underlying memory resource associated with it.

2) Do drivers ever need to expose multiple file descriptors per memory
object?

*RESOLVED*: No.
This would indicate there are actually multiple memory objects, rather than
a single memory object.

3) How should the valid size and memory type for POSIX file descriptor
memory handles created outside of Vulkan be specified?

*RESOLVED*: The valid memory types are queried directly from the external
handle.
The size will be specified by future extensions that introduce such external
memory handle types.

=== Version History

  * Revision 1, 2016-10-21 (James Jones)
    - Initial revision
