Class KHRExternalSemaphoreFd

java.lang.Object
org.lwjgl.vulkan.KHRExternalSemaphoreFd

public class KHRExternalSemaphoreFd extends Object
An application using external memory may wish to synchronize access to that memory using semaphores. This extension enables an application to export semaphore payload to and import semaphore payload from POSIX file descriptors.
Name String
VK_KHR_external_semaphore_fd
Extension Type
Device extension
Registered Extension Number
80
Revision
1
Extension and Version Dependencies
VK_KHR_external_semaphore or Version 1.1
Contact
Other Extension Metadata
Last Modified Date
2016-10-21
IP Status
No known IP claims.
Contributors
  • Jesse Hall, Google
  • James Jones, NVIDIA
  • Jeff Juliano, NVIDIA
  • Carsten Rohde, NVIDIA
  • Field Details

  • Method Details

    • nvkImportSemaphoreFdKHR

      public static int nvkImportSemaphoreFdKHR(org.lwjgl.vulkan.VkDevice device, long pImportSemaphoreFdInfo)
      Unsafe version of: ImportSemaphoreFdKHR
    • vkImportSemaphoreFdKHR

      public static int vkImportSemaphoreFdKHR(org.lwjgl.vulkan.VkDevice device, VkImportSemaphoreFdInfoKHR pImportSemaphoreFdInfo)
      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);
      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
      On failure, this command returns
      See Also

      VkImportSemaphoreFdInfoKHR

      Parameters:
      device - the logical device that created the semaphore.
      pImportSemaphoreFdInfo - a pointer to a VkImportSemaphoreFdInfoKHR structure specifying the semaphore and import parameters.
    • nvkGetSemaphoreFdKHR

      public static int nvkGetSemaphoreFdKHR(org.lwjgl.vulkan.VkDevice device, long pGetFdInfo, long pFd)
      Unsafe version of: GetSemaphoreFdKHR
    • vkGetSemaphoreFdKHR

      public static int vkGetSemaphoreFdKHR(org.lwjgl.vulkan.VkDevice device, VkSemaphoreGetFdInfoKHR pGetFdInfo, IntBuffer pFd)
      Get a POSIX file descriptor handle for a semaphore.
      C Specification

      To export a POSIX file descriptor representing the payload of a semaphore, call:

      
       VkResult vkGetSemaphoreFdKHR(
           VkDevice                                    device,
           const VkSemaphoreGetFdInfoKHR*              pGetFdInfo,
           int*                                        pFd);
      Description

      Each call to vkGetSemaphoreFdKHR must create a new file descriptor and transfer ownership of it to the application. To avoid leaking resources, the application must release ownership of the file descriptor when it is no longer needed.

      Note

      Ownership can be released in many ways. For example, the application can call close() on the file descriptor, or transfer ownership back to Vulkan by using the file descriptor to import a semaphore payload.

      Where supported by the operating system, the implementation must set the file descriptor to be closed automatically when an execve system call is made.

      Exporting a file descriptor from a semaphore may have side effects depending on the transference of the specified handle type, as described in Importing Semaphore State.

      Valid Usage (Implicit)
      • device must be a valid VkDevice handle
      • pGetFdInfo must be a valid pointer to a valid VkSemaphoreGetFdInfoKHR structure
      • pFd must be a valid pointer to an int value
      Return Codes
      On success, this command returns
      On failure, this command returns
      See Also

      VkSemaphoreGetFdInfoKHR

      Parameters:
      device - the logical device that created the semaphore being exported.
      pGetFdInfo - a pointer to a VkSemaphoreGetFdInfoKHR structure containing parameters of the export operation.
      pFd - will return the file descriptor representing the semaphore payload.
    • vkGetSemaphoreFdKHR

      public static int vkGetSemaphoreFdKHR(org.lwjgl.vulkan.VkDevice device, VkSemaphoreGetFdInfoKHR pGetFdInfo, int[] pFd)
      Array version of: GetSemaphoreFdKHR