Direct Rendering Infrastructure

The Linux graphics stack adheres to Mesa 3D

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 с закрытыми исходными кодами.

Примечания

[править | править код]