vulkan-2.0.0.1: Bindings to the Vulkan graphics API.

Safe HaskellNone
LanguageHaskell2010

Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd

Synopsis

Documentation

vkGetSemaphoreFdKHR :: ("device" ::: VkDevice) -> ("pGetFdInfo" ::: Ptr VkSemaphoreGetFdInfoKHR) -> ("pFd" ::: Ptr CInt) -> IO VkResult Source #

vkGetSemaphoreFdKHR - Get a POSIX file descriptor handle for a semaphore

Parameters

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

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 a int value

Return Codes

[Success] - VK_SUCCESS

[Failure] - VK_ERROR_TOO_MANY_OBJECTS

  • VK_ERROR_OUT_OF_HOST_MEMORY

See Also

VkDevice, VkSemaphoreGetFdInfoKHR

vkImportSemaphoreFdKHR :: ("device" ::: VkDevice) -> ("pImportSemaphoreFdInfo" ::: Ptr VkImportSemaphoreFdInfoKHR) -> IO VkResult Source #

vkImportSemaphoreFdKHR - Import a semaphore from a POSIX file descriptor

Parameters

  • device is the logical device that created the semaphore.

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

[Success] - VK_SUCCESS

[Failure] - VK_ERROR_OUT_OF_HOST_MEMORY

  • VK_ERROR_INVALID_EXTERNAL_HANDLE

See Also

VkDevice, VkImportSemaphoreFdInfoKHR

data VkImportSemaphoreFdInfoKHR Source #

VkImportSemaphoreFdInfoKHR - Structure specifying POSIX file descriptor to import to a semaphore

Description

The handle types supported by handleType are:

Handle Type Transference Permanence Supported
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT Reference Temporary,Permanent
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT Copy Temporary

Handle Types Supported by VkImportSemaphoreFdInfoKHR

Valid Usage

Valid Usage (Implicit)

  • sType must be VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR

Host Synchronization

  • Host access to semaphore must be externally synchronized

See Also

VkExternalSemaphoreHandleTypeFlagBits, VkSemaphore, VkSemaphoreImportFlags, VkStructureType, vkImportSemaphoreFdKHR

Constructors

VkImportSemaphoreFdInfoKHR 

Fields

data VkSemaphoreGetFdInfoKHR Source #

VkSemaphoreGetFdInfoKHR - Structure describing a POSIX FD semaphore export operation

Description

The properties of the file descriptor returned depend on the value of handleType. See VkExternalSemaphoreHandleTypeFlagBits for a description of the properties of the defined external semaphore handle types.

Valid Usage

  • semaphore must not currently have its payload replaced by an imported payload as described below in Importing Semaphore Payloads unless that imported payload’s handle type was included in VkExternalSemaphoreProperties::exportFromImportedHandleTypes for handleType.
  • If handleType refers to a handle type with copy payload transference semantics, as defined below in Importing Semaphore Payloads, there must be no queue waiting on semaphore.
  • If handleType refers to a handle type with copy payload transference semantics, semaphore must be signaled, or have an associated semaphore signal operation pending execution.
  • handleType must be defined as a POSIX file descriptor handle.

Valid Usage (Implicit)

  • sType must be VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR

See Also

VkExternalSemaphoreHandleTypeFlagBits, VkSemaphore, VkStructureType, vkGetSemaphoreFdKHR

Constructors

VkSemaphoreGetFdInfoKHR 

Fields