This is the initial implementation of a DRM backend based on the EGLDevice, EGLOutput, and EGLStream extensions, supporting NVIDIA graphics hardware using their proprietary driver. The new backend will be used if the environment variable KWIN_DRM_USE_EGL_STREAMS is set. On initialization, it will attempt to create an EGLDevice based on the DRM device currently in use and create EGLOutputs and EGLStreams for any attached displays. These are used to control presentation of the final composited frame. Additionally, it will register the wl_eglstream_controller Wayland interface so that native EGL windows created by clients can be attached to an EGLStream allowing buffer contents to be shared with the compositor as a GL texture.
Currently,At this time there are two known bugs in the NVIDIA driver's EGL implementation affecting desktop functionality. this backend is incompatible with atomic modesetting and hardware cursorsThe first can result in tooltip windows drawn by plasmashell to contain incorrect contents. Support for both is planned as future work,The second prevents KWayland from being able to query the format of EGLStream-backed buffers which interferes with the blur effect. as is integration with the autotesting frameworkFixes for both of these are currently in development and support for remote accesshould appear in an upcoming NVIDIA driver release.
At this time there is a known bug in the NVIDIA driver where plasmashell's tool-tip window will appear blank if it is resizeddditionally, hardware cursors are currently not supported with this backend. Enabling them causes the desktop to intermittently hang for several seconds. A fixThis is in development and should be present in an upcoming driver releasealso likely a bug in the NVIDIA DRM-KMS implementation but the root cause is still under investigation.