Table of Contents
The NVIDIA GPU driver package provides a kernel module, nvidia-drm.ko, which registers a DRM driver with the DRM subsystem of the Linux kernel. The capabilities advertised by this DRM driver depend on the Linux kernel version and configuration:
PRIME: This is needed to support graphics display offload in RandR 1.4. Linux kernel version 3.13 or higher is required, with CONFIG_DRM enabled.
Atomic Modeset: This is used for display of non-X11 based desktop environments, such as Wayland and Mir. Linux kernel version 4.1 or higher is required, with CONFIG_DRM and CONFIG_DRM_KMS_HELPER enabled.
NVIDIA's DRM KMS support is still considered experimental. It is disabled by default, but can be enabled on suitable kernels with the 'modeset' kernel module parameter. E.g.,
modprobe -r nvidia-drm ; modprobe nvidia-drm modeset=1
Applications can present through NVIDIA's DRM KMS implementation using any of the following:
The DRM KMS "dumb buffer" mechanism to create and map CPU-accessible buffers: DRM_IOCTL_MODE_CREATE_DUMB, DRM_IOCTL_MODE_MAP_DUMB, and DRM_IOCTL_MODE_DESTROY_DUMB.
Using the EGL_EXT_device_drm, EGL_EXT_output_drm, and EGL_EXT_stream_consumer_egloutput EGL extensions to associate EGLStream producers with specific DRM KMS planes.
The NVIDIA DRM KMS implementation is currently incompatible with SLI. The X server will fail to initialize SLI if DRM KMS is enabled.
The NVIDIA DRM KMS implementation does not yet register an overlay plane: only primary and cursor planes are currently provided.
Buffer allocation and submission to DRM KMS using gbm is not currently supported.