vulkan-2.0.0.1: Bindings to the Vulkan graphics API.

Safe HaskellNone
LanguageHaskell2010

Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd

Synopsis

Documentation

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

vkGetMemoryFdKHR - Get a POSIX file descriptor for a memory object

Parameters

  • device is the logical device that created the device memory being exported.
  • pGetFdInfo is a pointer to an instance of the VkMemoryGetFdInfoKHR structure containing parameters of the export operation.
  • pFd will return a file descriptor representing the underlying resources of the device memory object.

Description

Each call to vkGetMemoryFdKHR 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 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)

  • device must be a valid VkDevice handle
  • pGetFdInfo must be a valid pointer to a valid VkMemoryGetFdInfoKHR 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, VkMemoryGetFdInfoKHR

vkGetMemoryFdPropertiesKHR :: ("device" ::: VkDevice) -> ("handleType" ::: VkExternalMemoryHandleTypeFlagBits) -> ("fd" ::: CInt) -> ("pMemoryFdProperties" ::: Ptr VkMemoryFdPropertiesKHR) -> IO VkResult Source #

vkGetMemoryFdPropertiesKHR - Get Properties of External Memory File Descriptors

Parameters

  • device is the logical device that will be importing fd.
  • handleType is the type of the handle fd.
  • fd is the handle which will be imported.
  • pMemoryFdProperties will return properties of the handle fd.

Valid Usage

  • fd must be an external memory handle created outside of the Vulkan API.
  • handleType must not be VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR.

Valid Usage (Implicit)

  • device must be a valid VkDevice handle

Return Codes

[Success] - VK_SUCCESS

[Failure] - VK_ERROR_INVALID_EXTERNAL_HANDLE

See Also

VkDevice, VkExternalMemoryHandleTypeFlagBits, VkMemoryFdPropertiesKHR

data VkImportMemoryFdInfoKHR Source #

VkImportMemoryFdInfoKHR - import memory created on the same physical device from a file descriptor

Description

Importing memory 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 underlying memory into multiple instances of Vulkan, into the same instance from which it was exported, and multiple times into a given Vulkan instance. In all cases, each import operation must create a distinct VkDeviceMemory object.

Valid Usage

  • The memory from which fd was exported must have been created on the same underlying physical device as device.
  • If handleType is not 0, it must be defined as a POSIX file descriptor handle.
  • If handleType is not 0, fd must be a valid handle of the type specified by handleType.
  • The memory represented by fd must have been created from a physical device and driver that is compatible with device and handleType, as described in {html_spec_relative}#external-memory-handle-types-compatibility.
  • fd must obey any requirements listed for handleType in external memory handle types compatibility.

Valid Usage (Implicit)

  • sType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR

See Also

VkExternalMemoryHandleTypeFlagBits, VkStructureType

Constructors

VkImportMemoryFdInfoKHR 

Fields

data VkMemoryFdPropertiesKHR Source #

VkMemoryFdPropertiesKHR - Properties of External Memory File Descriptors

See Also

VkStructureType, vkGetMemoryFdPropertiesKHR

Constructors

VkMemoryFdPropertiesKHR 

Fields

  • vkSType :: VkStructureType

    sType is the type of this structure.

  • vkPNext :: Ptr ()

    pNext is NULL or a pointer to an extension-specific structure.

  • vkMemoryTypeBits :: Word32

    memoryTypeBits is a bitmask containing one bit set for every memory type which the specified file descriptor can be imported as.

data VkMemoryGetFdInfoKHR Source #

VkMemoryGetFdInfoKHR - Structure describing a POSIX FD semaphore export operation

Description

The properties of the file descriptor exported depend on the value of handleType. See VkExternalMemoryHandleTypeFlagBits for a description of the properties of the defined external memory handle types.

Note

The size of the exported file may be larger than the size requested by VkMemoryAllocateInfo::allocationSize. If handleType is VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT, then the application can query the file’s actual size with lseek(2)).

Valid Usage

  • handleType must be defined as a POSIX file descriptor handle.

Valid Usage (Implicit)

  • sType must be VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR

See Also

VkDeviceMemory, VkExternalMemoryHandleTypeFlagBits, VkStructureType, vkGetMemoryFdKHR

Constructors

VkMemoryGetFdInfoKHR 

Fields