/ 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