/ appendices / VK_EXT_external_memory_dma_buf.txt
VK_EXT_external_memory_dma_buf.txt
 1  include::meta/VK_EXT_external_memory_dma_buf.txt[]
 2  
 3  *Last Modified Date*::
 4      2017-10-10
 5  *IP Status*::
 6      No known IP claims.
 7  *Contributors*::
 8    - Chad Versace, Google
 9    - James Jones, NVIDIA
10    - Jason Ekstrand, Intel
11  
12  A dma_buf is a type of file descriptor, defined by the Linux kernel, that
13  allows sharing memory across kernel device drivers and across processes.
14  This extension enables applications to import a dma_buf as
15  slink:VkDeviceMemory; to export slink:VkDeviceMemory as a dma_buf; and to
16  create slink:VkBuffer objects that can: be bound to that memory.
17  
18  === New Enum Constants
19  
20    * Extending elink:VkExternalMemoryHandleTypeFlagBitsKHR:
21    ** ename:VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT
22  
23  === Issues
24  
25  1.
26     How does the application, when creating a slink:VkImage that it intends
27     to bind to dma_buf slink:VkDeviceMemory that contains an externally
28     produced image, specify the memory layout (such as row pitch and DRM
29     format modifier) of the slink:VkImage? In other words, how does the
30     application achieve behavior comparable to that provided by
31     https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_image_dma_buf_import.txt[`EGL_EXT_image_dma_buf_import`]
32     and
33     https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_image_dma_buf_import_modifiers.txt[`EGL_EXT_image_dma_buf_import_modifiers`]?
34  +
35  --
36  *RESOLVED*.
37  Features comparable to those in
38  https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_image_dma_buf_import.txt[`EGL_EXT_image_dma_buf_import`]
39  and
40  https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_image_dma_buf_import_modifiers.txt[`EGL_EXT_image_dma_buf_import_modifiers`]
41  will be provided by an extension layered atop this one.
42  --
43  
44  2.
45     Without the ability to specify the memory layout of external dma_buf
46     images, how is this extension useful?
47  +
48  --
49  *RESOLVED*.
50  This extension provides exactly one new feature: the ability to
51  import/export between dma_bufs and slink:VkDeviceMemory.
52  This feature, together with features provided by
53  `<<VK_KHR_external_memory_fd>>`, is sufficient to bind a slink:VkBuffer to
54  dma_buf.
55  --
56  
57  === Version History
58  
59    * Revision 1, 2017-10-10 (Chad Versace)
60      - Squashed internal revisions