Class KHRExternalFenceFd
- java.lang.Object
-
- org.lwjgl.vulkan.KHRExternalFenceFd
-
public class KHRExternalFenceFd extends java.lang.Object
An application using external memory may wish to synchronize access to that memory using fences. This extension enables an application to export fence payload to and import fence payload from POSIX file descriptors.- Name String
VK_KHR_external_fence_fd
- Extension Type
- Device extension
- Registered Extension Number
- 116
- Revision
- 1
- Extension and Version Dependencies
- Requires Vulkan 1.0
- Requires
VK_KHR_external_fence
- Contact
- Jesse Hall critsec
- Last Modified Date
- 2017-05-08
- IP Status
- No known IP claims.
- Contributors
- Jesse Hall, Google
- James Jones, NVIDIA
- Jeff Juliano, NVIDIA
- Cass Everitt, Oculus
- Contributors to
VK_KHR_external_semaphore_fd
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME
The extension name.static int
VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION
The extension specification version.static int
VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR
VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHRExtendsVkStructureType
.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static int
nvkGetFenceFdKHR(VkDevice device, long pGetFdInfo, long pFd)
Unsafe version of:GetFenceFdKHR
static int
nvkImportFenceFdKHR(VkDevice device, long pImportFenceFdInfo)
Unsafe version of:ImportFenceFdKHR
static int
vkGetFenceFdKHR(VkDevice device, VkFenceGetFdInfoKHR pGetFdInfo, int[] pFd)
Array version of:GetFenceFdKHR
static int
vkGetFenceFdKHR(VkDevice device, VkFenceGetFdInfoKHR pGetFdInfo, java.nio.IntBuffer pFd)
Get a POSIX file descriptor handle for a fence.static int
vkImportFenceFdKHR(VkDevice device, VkImportFenceFdInfoKHR pImportFenceFdInfo)
Import a fence from a POSIX file descriptor.
-
-
-
Field Detail
-
VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION
The extension specification version.
-
VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME
The extension name.
-
VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR, VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR
ExtendsVkStructureType
.Enum values:
-
-
Method Detail
-
nvkImportFenceFdKHR
public static int nvkImportFenceFdKHR(VkDevice device, long pImportFenceFdInfo)
Unsafe version of:ImportFenceFdKHR
-
vkImportFenceFdKHR
public static int vkImportFenceFdKHR(VkDevice device, VkImportFenceFdInfoKHR pImportFenceFdInfo)
Import a fence from a POSIX file descriptor.C Specification
To import a fence payload from a POSIX file descriptor, call:
VkResult vkImportFenceFdKHR( VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo);
Description
Importing a fence 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 fence 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
fence
must not be associated with any queue command that has not yet completed execution on that queue
Valid Usage (Implicit)
device
must be a validVkDevice
handlepImportFenceFdInfo
must be a valid pointer to a validVkImportFenceFdInfoKHR
structure
Return Codes
- On success, this command returns
- On failure, this command returns
See Also
- Parameters:
device
- the logical device that created the fence.pImportFenceFdInfo
- points to aVkImportFenceFdInfoKHR
structure specifying the fence and import parameters.
-
nvkGetFenceFdKHR
public static int nvkGetFenceFdKHR(VkDevice device, long pGetFdInfo, long pFd)
Unsafe version of:GetFenceFdKHR
-
vkGetFenceFdKHR
public static int vkGetFenceFdKHR(VkDevice device, VkFenceGetFdInfoKHR pGetFdInfo, java.nio.IntBuffer pFd)
Get a POSIX file descriptor handle for a fence.C Specification
To export a POSIX file descriptor representing the payload of a fence, call:
VkResult vkGetFenceFdKHR( VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd);
Description
Each call to
vkGetFenceFdKHR
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 fence payload.If
pGetFdInfo
->handleType
isEXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT
and the fence is signaled at the timevkGetFenceFdKHR
is called,pFd
may return the value-1
instead of a valid file descriptor.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 fence may have side effects depending on the transference of the specified handle type, as described in Importing Fence State.
Valid Usage (Implicit)
device
must be a validVkDevice
handlepGetFdInfo
must be a valid pointer to a validVkFenceGetFdInfoKHR
structurepFd
must be a valid pointer to anint
value
Return Codes
- On success, this command returns
- On failure, this command returns
See Also
- Parameters:
device
- the logical device that created the fence being exported.pGetFdInfo
- a pointer to an instance of theVkFenceGetFdInfoKHR
structure containing parameters of the export operation.pFd
- will return the file descriptor representing the fence payload.
-
vkGetFenceFdKHR
public static int vkGetFenceFdKHR(VkDevice device, VkFenceGetFdInfoKHR pGetFdInfo, int[] pFd)
Array version of:GetFenceFdKHR
-
-