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 forces all VRR capable displays into VRR mode by default. The conceal_vrr_caps module parameter for the nvidia_modeset kernel module may be used to hide VRR capabilities from the driver to prevent forced enabling of VRR. This is useful for allowing features such as ULMB (Ultra Low Motion Blur) to function.
The NVIDIA DRM KMS implementation is currently incompatible with SLI Mosaic. The X server will fail to initialize SLI Mosaic 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.