Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Vulkan.Extensions.VK_EXT_external_memory_dma_buf
Description
Name
VK_EXT_external_memory_dma_buf - device extension
VK_EXT_external_memory_dma_buf
- Name String
VK_EXT_external_memory_dma_buf
- Extension Type
- Device extension
- Registered Extension Number
- 126
- Revision
- 1
- Extension and Version Dependencies
- Requires support for Vulkan 1.0
- Requires
VK_KHR_external_memory_fd
to be enabled for any device-level functionality
- Contact
Other Extension Metadata
- Last Modified Date
- 2017-10-10
- IP Status
- No known IP claims.
- Contributors
- Chad Versace, Google
- James Jones, NVIDIA
- Jason Ekstrand, Intel
Description
A dma_buf
is a type of file descriptor, defined by the Linux kernel,
that allows sharing memory across kernel device drivers and across
processes. This extension enables applications to import a dma_buf
as
DeviceMemory
, to export
DeviceMemory
as a dma_buf
, and to create
Buffer
objects that can be bound to that
memory.
New Enum Constants
Issues
1) How does the application, when creating a
Image
that it intends to bind to dma_buf
DeviceMemory
containing an externally produced
image, specify the memory layout (such as row pitch and DRM format
modifier) of the Image
? In other words, how does
the application achieve behavior comparable to that provided by
EGL_EXT_image_dma_buf_import
and
EGL_EXT_image_dma_buf_import_modifiers
?
RESOLVED: Features comparable to those in EGL_EXT_image_dma_buf_import and EGL_EXT_image_dma_buf_import_modifiers will be provided by an extension layered atop this one.
2) Without the ability to specify the memory layout of external
dma_buf
images, how is this extension useful?
RESOLVED: This extension provides exactly one new feature: the
ability to import/export between dma_buf
and
DeviceMemory
. This feature, together with
features provided by VK_KHR_external_memory_fd
, is sufficient to bind
a Buffer
to dma_buf
.
Version History
Revision 1, 2017-10-10 (Chad Versace)
- Squashed internal revisions
See Also
No cross-references are available
Document Notes
For more information, see the Vulkan Specification
This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.
Documentation
pattern EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION :: forall a. Integral a => a Source #
type EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME = "VK_EXT_external_memory_dma_buf" Source #
pattern EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a Source #