include::meta/VK_EXT_external_memory_dma_buf.txt[] *Last Modified Date*:: 2017-10-10 *IP Status*:: No known IP claims. *Contributors*:: - Chad Versace, Google - James Jones, NVIDIA - Jason Ekstrand, Intel 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 slink:VkDeviceMemory; to export slink:VkDeviceMemory as a dma_buf; and to create slink:VkBuffer objects that can: be bound to that memory. === New Enum Constants * Extending elink:VkExternalMemoryHandleTypeFlagBitsKHR: ** ename:VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT === Issues 1. How does the application, when creating a slink:VkImage that it intends to bind to dma_buf slink:VkDeviceMemory that contains an externally produced image, specify the memory layout (such as row pitch and DRM format modifier) of the slink:VkImage? In other words, how does the application achieve behavior comparable to that provided by https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_image_dma_buf_import.txt[EGL_EXT_image_dma_buf_import] and https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_image_dma_buf_import_modifiers.txt[EGL_EXT_image_dma_buf_import_modifiers]? + -- *RESOLVED*. Features comparable to those in https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_image_dma_buf_import.txt[EGL_EXT_image_dma_buf_import] and https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_image_dma_buf_import_modifiers.txt[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_bufs and slink:VkDeviceMemory. This feature, together with features provided by `<>`, is sufficient to bind a slink:VkBuffer to dma_buf. -- === Version History * Revision 1, 2017-10-10 (Chad Versace) - Squashed internal revisions