// 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
