从用户视角看 DMA-BUF 是什么、有什么用

本文将试图从用户空间的视角而非内核视角解释 DMA-BUF。

TLDR

DMA-BUF 是用户进程以文件(FD)形式从内核引用并可以传递给其他进程或内核组件的、不一定位于内存(RAM)上的存储区域。

其主要被用于在用户空间零复制(Zero-copy)地向某一硬件传递引用自相同或另一硬件并可被两硬件直接访问的存储区域,如将 Vulkan 存储引用的显存区域以 DMA-BUF 导出并导入为 EGL/OpenGL 存储。