# vkImportSemaphoreFdKHR(3) Manual Page

## Name

vkImportSemaphoreFdKHR - Import a semaphore from a POSIX file descriptor

## C Specification

To import a semaphore payload from a POSIX file descriptor, call:

    VkResult vkImportSemaphoreFdKHR(
        VkDevice                                    device,
        const VkImportSemaphoreFdInfoKHR*           pImportSemaphoreFdInfo);

## Parameters

- `device` is the logical device that created the semaphore.

- `pImportSemaphoreFdInfo` is a pointer to a VkImportSemaphoreFdInfoKHR structure specifying the semaphore and import parameters.

## Description

Importing a semaphore payload from a file descriptor transfers ownership of the file descriptor from the application to the Vulkan implementation. The application must not perform any operations on the file descriptor after a successful import.

Applications can import the same semaphore payload into multiple instances of Vulkan, into the same instance from which it was exported, and multiple times into a given Vulkan instance.

Valid Usage

- `semaphore` must not be associated with any queue command that has not yet completed execution on that queue

Valid Usage (Implicit)

- `device` must be a valid VkDevice handle

- `pImportSemaphoreFdInfo` must be a valid pointer to a valid VkImportSemaphoreFdInfoKHR structure

Return Codes

On success, this command returns

  - `VK_SUCCESS`

On failure, this command returns

  - `VK_ERROR_OUT_OF_HOST_MEMORY`

  - `VK_ERROR_INVALID_EXTERNAL_HANDLE`

## See Also

VkDevice, VkImportSemaphoreFdInfoKHR

## Document Notes

For more information, see the Vulkan Specification

This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.

## Copyright

Copyright (c) 2014-2020 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.