Function Prototype

vkGetMemoryFdKHR

Get a POSIX file descriptor for a memory object

To export a POSIX file descriptor referencing the payload of a Vulkan device memory object, call:

VkResult vkGetMemoryFdKHR(
    VkDevice device,
    const VkMemoryGetFdInfoKHR* pGetFdInfo,
    int* pFd);
  • device is the logical device that created the device memory being exported.
  • pGetFdInfo is a pointer to a VkMemoryGetFdInfoKHR structure containing parameters of the export operation.
  • pFd will return a file descriptor referencing the payload of the device memory object.

Each call to vkGetMemoryFdKHR must create a new file descriptor holding a reference to the memory object’s payload and transfer ownership of the file descriptor to the application. To avoid leaking resources, the application must release ownership of the file descriptor using the close system call when it is no longer needed, or by importing a Vulkan memory object from it. Where supported by the operating system, the implementation must set the file descriptor to be closed automatically when an execve system call is made.

Valid Usage (Implicit)

VUID-vkGetMemoryFdKHR-pGetFdInfo-parameter

pGetFdInfo must be a valid pointer to a valid VkMemoryGetFdInfoKHR structure

VUID-vkGetMemoryFdKHR-pFd-parameter

pFd must be a valid pointer to an int value