Interested Article - Gallium3D

Иллюстрация графического стека ОС Linux
Структура (модель) Mesa/ DRI и Gallium3D драйверов различна. Но совместно используются много того же самого свободного и открытого кода.
Возможный пример матрицы, когда реализуется Gallium3D модель драйверов. Благодаря введению интерфейсов Gallium 3D Tracker и Gallium3D WinSys, требуется только 18 модулей вместо 36. Каждый WinSys модуль может работать с каждым Gallium3D модулем драйверов устройств и с каждым State Tracker модулем.

Gallium3D — библиотека трёхмерной графики для драйверов устройств, разработанная компанией Tungsten Graphics, которая занимается разработками в области графических технологий в среде Open Source . На данный момент разработкой занимается компания VMware , которая выкупила Tungsten Graphics. С 2009 года является частью проекта Mesa .

API Gallium3D представляет собой прослойку между реализацией высокоуровневого графического интерфейса типа OpenGL и драйвером для видеокарты . Её задача — упростить разработку драйверов видеокарт посредством связывания дублирующегося кода в нескольких разных драйверах в одно представление. Это необходимо, чтобы обеспечивать лучшее разделение работы (например, оставляя управление памятью ядру драйвера DRI) и поддерживания современной архитектуры аппаратных средств.

Gallium3D представляет объединённый API, обеспечивающий стандартные аппаратные функции, реализуемые на современном графическом оборудовании, такие, как, например, модули программы построения шейдеров . Таким образом, трёхмерные API , созданные по спецификациям OpenGL 1.x/2.x/3.x, OpenVG , Direct3D (его реализация в среде совместимости Wine ), будут нуждаться только в front-end , названном State Tracker и предоставляемом Mesa . В этом отличие современной Mesa 3D от более ранних версий без Gallium3D, которые требовали полную реализацию OpenGL (в том числе front-end) для каждой аппаратной платформы. Кроме того, благодаря модульной структуре Gallium3D, уже ведутся работы по более тесной интеграции с набором программ компилятора LLVM и созданию модуля, позволяющего оптимизировать код шейдеров «на лету».

С использованием Gallium3D, драйвер DRM будет управлять памятью видеокарты, а драйвер DRI (теперь названный DRI2) будет больше ориентирован на сопровождение GPU . Это решит проблему с управлением памятью, что прежде считалось неосуществимым при использовании Mesa 3D.

Ссылки

  • на FreeDesktop Wiki
Источник —

Same as Gallium3D