Direct Rendering Infrastructure
![](http://upload.wikimedia.org/wikipedia/commons/thumb/c/c2/Linux_Graphics_Stack_2013.svg/300px-Linux_Graphics_Stack_2013.svg.png)
Direct Rendering Infrastructure (DRI) — интерфейс и свободная его реализация, используемые в системе X Window System, позволяющая пользовательским приложениям безопасно получать доступ к видеоаппаратуре без необходимости использования X server (замедляющего этот процесс). Основное назначение DRI — обеспечение аппаратного ускорения Mesa 3D (одной из реализаций OpenGL и Vulkan). Также позволяет реализовать ускорение OpenGL в консольный кадровый буфер без запущенного X11-сервера.
Проект был начат Йенсом Оуэном (Jens Owen) и Кевином Мартином (Kevin E. Martin) в Precision Insight. Впервые проект получил широкое распространение как часть XFree86 4.0, впоследствии стал частью X.Org. По состоянию на 2010-е годы поддерживается Tungsten Graphics, а также различными участниками сообщества свободного программного обеспечения. Поддерживается в Linux и FreeBSD; также портирован в NetBSD.
Составляющие
Поддержка OpenGL в Direct Rendering Infrastructure состоит из нескольких частей.
Первая часть — это Direct Rendering Manager (DRM), является составной частью инфраструктуры Direct Rendering Infrastructure, системы, чтобы обеспечить эффективное ускорение видео (в частности, 3D-рендеринг).
Вторая часть DRI — это модуль драйвера пользовательского пространства, содержащий драйвер OpenGL, который обычно подготавливает буферы команд для отправки в видеоаппаратуру с помощью DRM и взаимодействует с оконной системой для синхронизации доступа к видеоаппаратуре.
Третья часть — своего рода сервер. В X — это модуль поддержки libdri.so и DDX (2D-драйвер с поддержкой DRI). В реализации для кадрового буфера — это MiniGLX, инициализирующий DRM и предоставляющий некоторые функции из X Window API драйверу пользовательского пространства в условиях отсутствия X11-сервера.
Драйверы
Существует некоторое количество драйверов DRI с открытыми исходными кодами, в том числе драйверы для ATI Mach64, ATI Rage128, ATI Radeon, для 3dfx с Voodoo3 по Voodoo5, Matrox с G200 по G400, SiS 300-series, Intel с i810 по i965, S3 Savage, а также для графических чипсетов VIA unichrome. Некоторыми производителями видеокарт (такими, как ATI и Kyro) написаны собственнические драйверы DRI с закрытыми исходными кодами.
Примечания
Ссылки
- Direct Rendering Infrastructure project home page
- Direct Rendering Infrastructure project «To Do» page
- Mesa
- Tungsten Graphics
- DRI2
- http://www.linux.com/feature/8797 (недоступная ссылка)
- https://web.archive.org/web/20080808114526/http://www.linuxformat.co.uk/pdfs/LXF68.feat_x.pdf
- A Multipipe Direct Rendering Architecture for 3D (Jens Owen and Kevin Martin, 1998) (original DRI design document)
- Direct Rendering Infrastructure, Low-Level Design Document (Kevin E. Martin, Rickard E. Faith, Jens Owen, and Allen Akin, 1999)
- DRI Extension for supporting Direct Rendering Protocol Specification (недоступная ссылка с 14-05-2013 [4121 день] — история) (Jens Owen and Kevin Martin, Precision Insight, 1999)
- DRI explanation (Adam Jackson)
- Getting X Off The Hardware (Keith Packard)
- В ядро Linux 3.12 будет добавлена экспериментальня поддержка Render Nodes