Direct Rendering Infrastructure

En informática, Direct Rendering Infrastructure (abreviado como DRI, Infraestructura de Renderizado Directo) es una interfaz usada en el sistema de ventanas X (X Window System), para que las aplicaciones de
usuario puedan acceder de manera segura al hardware de video sin tener que pasar los datos por el servidor X, cosa
que degrada el rendimiento. La aplicación principal es proveer de aceleración por hardware a la biblioteca Mesa,
que es una implementación libre de OpenGL. DRI también ha sido adaptado para proveer aceleración OpenGL
al framebuffer de Linux, sin ejecución de un servidor X.

El proyecto fue iniciado por Jens Owen, de Precision Insight. La primera versión ampliamente distribuida fue como
parte de XFree86 4.0, y en la actualidad está integrado dentro de X.Org. En la actualidad su mantenimiento
corre a cargo de Tungsten Graphics y muchos otros desarrolladores de software libre.

El soporte OpenGL de DRI se realiza mediante la unión de varios componentes. El primero de ellos es Direct Rendering Manager (DRM). DRM es una combinación de dos módulos del kernel, uno con el código principal de DRM, y otro específico del chip gráfico que provee API para acceder a las clases diferentes de hardware gráfico (como pueden ser ATI o NVidia). El segundo componente es un driver para el espacio de usuario, el cual contiene un driver OpenGL que típicamente realiza la labor de preparar buffers de comandos para ser enviados al hardware gráfico vía DRM, e interactúa con el sistema de ventanas para sincronizar el acceso al hardware de vídeo. El tercer componente es un servidor gráfico. En el
entorno de ventanas X, es la biblioteca libdri.so y un driver DRI DDX para 2D. En la implementación para framebuffer es miniglx, el cual inicializa DRM y provee algunas de las API de X al driver de espacio de usuario a pesar de la ausencia del servidor X completo.

Se han escrito varios drivers DRI de código libre para diferente hardware gráfico, incluyendo ATI Mach64, ATI Rage128, ATI Radeon, 3dfx Voodoo3 hasta Voodoo5, Matrox G200 hasta G400, la serie 300 de SiS, Intel i810 hasta i965, S3 Savage, y VIA. Algunos fabricantes de tarjetas gráficas han escrito drivers para DRI de código cerrado, incluyendo ATI y Kyro. DRI es soportado en Linux, FreeBSD y ha sido portado a NetBSD en el pasado.

DRI2 

Desde el 2007, en el X Developers' Summit, el desarrollo de una versión sucesora de DRI empezó. La nueva infraestructura para renderizado arregla muchas limitaciones del antiguo diseño, en particular en combinación de DRI con AIGLX. A principios de 2008 comenzó el desarrollo del primer driver de gráficos DRI2 en el árbol de desarrollo del servidor X.Org.

Los componentes necesarios de la infraestructura DRI2 están actualmente incluidos en X.Org Server 1.6, Linux 2.6.28 y en Mesa 3D 7.4.

Referencias 
 A Multipipe Direct Rendering Architecture for 3D (Jens Owen and Kevin Martin) (documento con el diseño original de DRI) (en inglés)
 DRI Extension for supporting Direct Rendering Protocol Specification (Jens Owen and Kevin Martin, Precision Insight, 1999) (en inglés)
 DRI explanation (Adam Jackson) (en inglés)
 Getting X Off The Hardware (Keith Packard) (en inglés)

Véase también 
 Direct Rendering Manager
 X.Org

Enlaces externos 
 Página del proyecto Direct Rendering Infrastructure
 Mesa (biblioteca de código abierto, clon de OpenGL)
 Tungsten Graphics

Direct Rendering Infrastructure
Bibliotecas gráficas
Bibliotecas de C
Freedesktop.org
Interfaz gráfica de usuario
Hardware multimedia y gráfico