NVIDIA Is Working On DMA-BUF Passing That Should Help Improve Their Wayland Support
A Phoronix reader tipped us off to NVIDIA developer comments last month in response to a KDE EGLStreams bug. A bug report was opened regarding that restarting the compositing breaks the EGLStreams back-end for KDE's KWin.
NVIDIA developer Erik Kurzinger acknowledged that their EGL Wayland code isn't setup to handle compositor restarting. So at least for now the EGLStreams back-end should avoid applying settings that require a compositor restart until the next time the user is logging in. But here's the interesting remarks:
Incidentally, we're currently working on driver-side support for passing buffers as dma-bufs, and once that's ready we could transition egl-wayland away from using EGLStreams. Then it should be possible to remove all of the EglStreamTexture stuff from kwin.
It's worth noting that Erik is the NVIDIA developer who originally wrote the EGLStreams back-end for KDE's KWin Wayland compositor for allowing their current proprietary driver stack to function.
As we roll into 2021 it's nice to see NVIDIA finally working on driver-side support for DMA-BUF buffer passing... (Note: Not to be confused with a GBM implementation that they have refrained from supporting for various reasons and the main targt of Wayland compositors.) It's only been many years now that DMA-BUF has been around and widely supported by most Linux drivers. Work is also being done on Linux for DMA-BUF support with RDMA and other areas that may interest them for the enterprise angle with buffer sharing -- in addition to improving the Wayland support by allowing some of their EGLStreams mess to be removed.
It was just a few years ago that NVIDIA wasn't too eager about DMA-BUF as part of their multi-year effort on a Unix Device Memory Allocator API that has seemingly installed.
For now that's all we know: NVIDIA is currently working on driver-side support for passing of DMA-BUF buffers but to the extent they will be supporting DMA-BUF or when we may see such a supported driver released is currently unknown.