| // Copyright 2017-2021 The Khronos Group Inc. |
| // |
| // SPDX-License-Identifier: CC-BY-4.0 |
| |
| include::{generated}/meta/{refprefix}VK_EXT_external_memory_dma_buf.txt[] |
| |
| === 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 code: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 code:dma_buf as |
| slink:VkDeviceMemory, to export slink:VkDeviceMemory as a code:dma_buf, and |
| to create slink:VkBuffer objects that can: be bound to that memory. |
| |
| include::{generated}/interfaces/VK_EXT_external_memory_dma_buf.txt[] |
| |
| === Issues |
| |
| 1) How does the application, when creating a slink:VkImage that it intends |
| to bind to code:dma_buf slink:VkDeviceMemory containing 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 code:dma_buf |
| images, how is this extension useful? |
| |
| *RESOLVED*: This extension provides exactly one new feature: the ability to |
| import/export between code:dma_buf and slink:VkDeviceMemory. |
| This feature, together with features provided by |
| `apiext:VK_KHR_external_memory_fd`, is sufficient to bind a slink:VkBuffer |
| to code:dma_buf. |
| |
| === Version History |
| |
| * Revision 1, 2017-10-10 (Chad Versace) |
| - Squashed internal revisions |