Direct Rendering Infrastructure

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Frap (talk | contribs) at 10:46, 5 March 2013. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

DRI
Original author(s)Precision Insight
Developer(s)freedesktop.org
Stable release
2.4.x / February 2009
Written inC
LicenseMIT and other licenses[1]
Websitedri.freedesktop.org

In computing, the Direct Rendering Infrastructure (DRI) is an interface and a free software implementation used in the X Window System to securely allow user applications to access the video hardware without requiring data to be passed through the X server. Its primary application is to provide hardware acceleration for the Mesa implementation of OpenGL used as the core for the DRI OpenGL drivers. Without DRI, programs have to use the CPU while rendering (indirect rendering), which degrades overall performance. DRI has also been adapted to provide OpenGL acceleration on a framebuffer console without an X Server running.

History

The project was started by Jens Owen and Kevin E. Martin of Precision Insight. It was first made widely available as part of XFree86 4.0 and is now part of the X.Org Server. It is currently maintained by the free software community.

Components

The DRI OpenGL support consists of several pieces:

  • The Direct Rendering Manager (DRM) is a combination of at least two kernel modules, one of core DRM code and others providing APIs to userland to access different classes of video hardware.
  • The userland driver module contains an OpenGL driver that typically prepares buffers of commands to be sent to the hardware by the DRM and interacts with the windowing system for synchronization of access to the hardware.
  • Additional code provides access to the interface provided by the driver module. In X this is the libdri.so support module and a DRI-enabled DDX (2D driver). In the framebuffer implementation this is MiniGLX, which initializes the DRM and provides some X APIs to the userland driver despite the lack of an X Server.

Drivers

Several open source DRI drivers have been written, including ones for ATI Mach64, ATI Rage128, ATI Radeon, 3dfx Voodoo3 through Voodoo5, Matrox G200 through G400, SiS 300-series, Intel i810 through i965, S3 Savage, VIA UniChrome graphics chipsets, and nouveau for Nvidia. Some graphics vendors have written closed-source DRI drivers, including Nvidia[citation needed], ATI, and Kyro. The DRI is supported on Linux, OpenSolaris, FreeBSD, NetBSD, and OpenBSD.

DRI2

Work on DRI2 started at the 2007 X Developers' Summit. The new rendering infrastructure improves several shortcomings of the old design, including removing internal locks and adding proper support for offscreen rendering, so that compositing and XVideo/OpenGL applications are properly managed.

DRI3

There has been talk about DRI3 by Keith Packard and Eric Anholt at XDC2012. RI3 still revolves around using POSIX file descriptors for passing kernel objects between the X Server and the application. As part of the proposed DRI3 is also the swap extension for swapping the screen contents in a synchronized manner. http://keithp.com/blogs/DRI3000/ DRI3 will improve the window resizing process, improve security a bit, utilize DMA-BUF.

See also

Notes

  1. ^ Mesa DRI License / Copyright Information - The Mesa 3D Graphics Library

References

External links