Gallium3D

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Gallium3D
Тип Графическая библиотека
Разработчики VMware, ранее Tungsten Graphics, Inc.
Написана на Си
Операционная система Кроссплатформенное программное обеспечение
Первый выпуск В разработке
Тестовая версия 0.4 (24 апреля 2010)
Лицензия MIT License
Сайт freedesktop.org/wiki/Sof…
Логотип Викисклада Медиафайлы на Викискладе
Иллюстрация графического стека ОС 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.