Direct Rendering Manager
Type | Kernel module |
---|---|
License | GPL |
Website | dri.freedesktop.org/wiki/DRM |
The Direct Rendering Manager (DRM) is a hardware specific kernel module implementing the Direct Rendering Infrastructure architecture to support video hardware. It is a component of the Linux kernel and there are implementations in ~BSD kernels as well.
It consists of two in-kernel drivers (released as kernel modules on Linux), a generic drm driver, and another which has specific support for the GPUs. This pair of drivers allows a userspace client direct access to the video hardware. The entire DRI system enables hardware accelerated 3D rendering, video decoding as well as GPGPU.
Linux kernel version 3.11, which was released on 2013-09-02, included major changes to the direct rendering manager.[1] As of September 2013, freedreno has been adopted into mainline Linux, and will be part of Linux kernel 3.12.[2]
In version 3.12 an (experimental) implementation of render nodes were merged into the Direct Rendering Manager.[3][4][5][6]
A render node is a character device that exposes a GPU's off-screen rendering and GPGPU capabilities to unprivileged programs, without exposing any display manipulation access. This is the first step in of an effort to decouple the kernel's interfaces for GPUs and display controllers from the obsolete notion of a graphics card.[7] Coincidentally, unprivileged off-screen rendering is presumed by both the emerging Wayland and Mir display protocols — only the compositor is entitled to send its output to a display, and rendering on behalf of client programs is outside the scope of these protocols.
In Linux kernel 3.13
- DRM for freedreno by Rob Clark are expected to be merged.[8]
- DRM support for Marvell's ARMADA 510 display subsystem.[9]
-
The Direct Rendering Manager and components in user space.
-
Direct Rendering Infrastructure versus indirect rendering in its early stage: theX server is still rooted because the 2D graphics driver is part of it, and accesses the hardware directly.
-
Only the Direct Rendering Manager accesses the graphics hardware.
References
- ↑ http://www.phoronix.com/scan.php?page=news_item&px=MTM5OTc
- ↑ "Pull-Request for the mainline Linux kernel 3.12". Retrieved 2013-10-02.
- ↑ "drm: implement experimental render nodes".
- ↑ "drm/i915: Support render nodes".
- ↑ "drm/radeon: Support render nodes".
- ↑ "drm/nouveau: Support render nodes".
- ↑ "Splitting DRM and KMS nodes".
- ↑ "drm/msm for Linux kernel 3.13".
- ↑ "Armada DRM support for Linux kernel 3.13".
External links
- DRM home page
- The Direct Rendering Manager: Kernel Support for the Direct Rendering Infrastructure
- David Herrmann on Splitting DRM and KMS device nodes
|