Драйверы видеокарт с открытым исходным кодом

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Схема рендеринга: ОС Linux и приложения, использующие OpenGL.
Графический стек Linux

Свободное программное обеспечение (СПО) может быть использовано с разнообразным графическим оборудованием, в основном благодаря проекту X.Org. Существуют разные уровни поддержки оборудования — от полностью поддерживаемого до неподдерживаемого. Некоторые производители оборудования не предоставляют драйверов со свободным исходным кодом или техническую документацию для написания независимыми разработчиками драйверов с поддержкой 3D-ускорения, и поддержка продуктов этих компаний может быть ограниченной: могут предоставляться только бинарные драйверы (так называемые блобы), или же недостаток документации может вынуждать разработчиков свободных драйверов к обратной разработке оборудования, или же поддержки не будет совсем. В таких случаях бинарные драйверы противоречат философии СПО, качеству и безопасности ПО. Также это может привести к тому, что распространение ядра линукс вместе с закрытым ПО может оказаться незаконным.

Известный источник о быстродействии, http://www.free3d.org, собирает информацию о быстродействии 3D, высылаемую пользователями. Phoronix также занимается сравнением быстродействия свободных драйверов.

Поддержка свободным программным обеспечением[править | править вики-текст]

В общем случае, видеодрайвер vesa поддерживает без графического ускорения работу большинства видеокарт, с разрешениями экрана, заданными в BIOS производителем.

ATI/AMD[править | править вики-текст]

Проприетарный драйвер от ATI (ныне AMD) называется fglrx и распространяется как часть пакета AMD Catalyst Linux, который можно загрузить из интернета или получить из репозиториев некоторых дистрибутивов.

Свободный драйвер «radeon» представляет поддержку 2D, Xv и 3D-ускорения для видеокарт от Radeon 7000 (R100) до Radeon HD 7000 (архитектура Southern Islands). Также он известен как драйвер «ati»[1].

Для видеокарт серии HD7700 и выше, основанных на новой архитектуре GCN, применяется свободный драйвер RadeonSI, который пока менее функционален, чем драйвер R600g[2].

ATI выпускала спецификации для некоторых чипсетов в 2007—2009 годах. AMD также участвует в разработке и поддержке драйвера radeon.

Nvidia[править | править вики-текст]

В прошлом, Nvidia предоставляла документацию для чипов серии RIVA TNT и старее, предоставляя частично свободный и частично обфусицированный[3][4] драйвер nv для X.Org. 26 марта 2010 года объявила о прекращении поддержки новых GPU в драйвере nv. Существует проект свободных драйверов nouveau, в котором благодаря обратной разработке задействовано 3D-ускорение с помощью Gallium 3D. Матрица возможностей драйвера nouveau представлена на сайте проекта[5].

Для Nvidia tegra существует проприетарный драйвер (как часть Linux For Tegra). В апреле 2012 г., в связи с «производственной необходимостью», Nvidia совместно с партнёром Avionic Design GmbH начали работать над продвижением свободного драйвера в ядро Linux[6][7].

Intel[править | править вики-текст]

У Intel длительная история выпуска свободных драйверов для их графических ядер. Написанием драйверов занимается сторонний исполнитель Tungsten Graphics.

Есть только одно исключение: встроенная графика GMA 500/600 и GMA 3600/3650, используемая в процессорах Atom, — это не целиком собственный продукт от Intel[8] (там графические ядра PowerVR лицензированные у Imagination Technologies, а значит возможность появления свободных драйверов определяет именно эта фирма).

Существует две версии X.Org драйвера, драйвер xorg-video-i810, который поддерживает i810 и некоторые более старые модели и обновлённый драйвер xf86-video-intel, который изначально поддерживал те же модели, но в новых версиях 2.0 и 2.1 добавлена поддержка G33, Q33 и Q35.

Matrox[править | править вики-текст]

Для поддержки ОС Unix и Linux, Matrox выпустила только бинарные драйверы для большинства своих продуктов, а также драйверы с частично доступным исходным кодом для видеокарт на основе чипа G550, работающие совместно с блобами. В дополнение к закрытым драйверам, сообщество разработчиков DRI выпустило полностью GPL-совместимые драйверы для большого числа видеокарт Matrox[9].

ARM[править | править вики-текст]

ARM разрабатывает графические ускорители Mali и продаёт лицензии как на программные блоки, так и аппаратные (см. IP-cores). 21 января 2012 года Phoronix сообщил, что Luc Verhaegen с помощью обратной разработки пишет драйвер Lima для Mali-200 и Mali-400[10]. Драйвер был представлен на выставке FOSDEM (англ.) 4 февраля 2012 года.

В мае 2013 года на основе Ubuntu появилась сборка «Picuntu» с работающим ускорением графики для устройств на SoC Rockchip RK 3066 с GPU Mali-400[11].

Imagination Technologies[править | править вики-текст]

Imagination Technologies разрабатывают GPU PowerVR и продают их как IP-cores. Производитель не предоставляет ни свободного драйвера, ни документации к своей продукции. Фонд свободного программного обеспечения поместил в список высокоприоритетных проектов обратную разработку драйвера PowerVR.

Qualcomm[править | править вики-текст]

Qualcomm разрабатывают и производят GPU Adreno, чаще всего как часть системы на кристалле Snapdragon. В 2012 году Phoronix и Slashdot сообщили, что Rob Clark занимается обратной разработкой GPU Qualcomm Adreno (ранее называвшееся ATI Imageon), которое используется в мобильной платформе Snapdragon. Свободный драйвер, названный Freedreno, опубликован на GitHub. В 2012 году была завершена работа над шейдерным ассемблером и была продемонстрирована работа с текстурами и затенением по Фонгу. В марте 2013 г. Freedreno был добавлен[12] в Mesa (свободную реализацию графического API OpenGL).

Vivante[править | править вики-текст]

Лицензируемые GPU от Vivante широко используются в различных системах на кристалле (Marvell Armada, Rockchip 2918, Freescale i.MX6, …[13]), но свободный драйвер производителем не предоставляется. В 2013 году был начат открытый проект Etna_viv[14] по написанию такого драйвера (также методами обратной разработки). Автором проекта является Владимир Дж. Ван-дер-Лан из Нидерландов. Он выкладывает сообщения по данной теме в своём блоге, а сам проект размещён на GitHub, где имеется своя специализированная Вики[15]. Целью проекта является разработка полноценных драйверов Mesa/Gallium3D. В рамках данного проект уже создан драйвер OpenGL ES 2.0 для версий 3D GPU с одним пиксельным конвейером (ядра GC1000 и ниже), его надёжности и функциональности достаточно для запуска таких игр, как Quake 3 Arena[16], Descent 2 rebirth и Hurrican (англ.)[17]. Тем не менее проект находится на начальной стадии развития и автор призывает к помощи в развитии проекта[18][19].

Broadcom[править | править вики-текст]

Broadcom разрабатывают и производят GPU VideoCore, который используется, к примеру, в Raspberry Pi. Код драйвера сделали свободным в октябре 2012 года, однако прошивка видеокарты остаётся проприетарной.[20]

Другие производители[править | править вики-текст]

SiS и VIA проявляют ограниченный интерес.

DisplayLink (англ.) анонсировал свободный проект libdlo, с упором на поддержку USB-видеокарт в Linux и на других платформах. Код доступен под лицензией LGPL.

Открытое аппаратное обеспечение[править | править вики-текст]

Примечания[править | править вики-текст]

  1. Описание драйвера radeon на сайте freedesktop.org
  2. В MESA-драйвере RadeonSI реализована поддержка тайлинга и сжатых текстур
  3. README.RIVATNT, 11/18/98: «NVIDIA forced The XFree86 Project to replace the sources we had with sources that were partly run through the C preprocessor in order to remove some of the names that NVIDIA thought might give away IP from NVIDIA. This resulted in unreadable and unmaintainable code.»
  4. Пример обфускации
  5. Матрица возможностей nouveau
  6. Mayo, Jon [RFC 0/4] Add NVIDIA Tegra DRM support. Список рассылки dri-devel (20 апреля 2012). Проверено 21 августа 2012.
  7. Larabel, Michael. A NVIDIA Tegra 2 DRM/KMS Driver Tips Up. Phoronix Media (11 апреля 2012). Проверено 21 августа 2012. Архивировано 19 апреля 2013 года.
  8. Ответ Intel по поводу поддержки GMA 3600 в линукс
  9. Hardware Abstraction Layer by Matrox for G400/450/550 (англ.). dri.freedesktop.org. dri.freedesktop.org. — Бинарный модуль HAL от Matrox для обеспечения дополнительной функциональности чипов G400/450/550. Проверено 22 марта 2017.
  10. Представлен открытый драйвер для используемого во многих ARM-чипах GPU Mali
  11. Сборка «Picuntu» для Rockchip RK 3066
  12. В Mesa добавлена поддержка первого драйвера GPU для SoC на базе ARM
  13. GitHub: laanwj/etna_viv (англ.). GitHub (December 2012). — Основная страница ресурса. Проверено 30 марта 2013.
  14. В рамках проекта etna_viv началась разработка открытого драйвера для GPU Vivante (рус.). opennet.ru. — Wladimir J. van der Laan, один из разработчиков системы Bitcoin, основал проект Etna_viv по созданию открытого драйвера для GPU Vivante GCxxx, поставляемых в некоторых ARM-платформах, таких как Marvell Armada 1500, Rockchip RK2918 и Freescale i.MX6.. Архивировано 15 марта 2013 года.
  15. GitHub: laanwj/etna_viv Wiki (англ.). GitHub (December 2012). — Wiki-страница ресурса. Проверено 30 марта 2013.
  16. Wladimir J. van der Laan. Q3A with Etna OpenGL ES driver (англ.) (13 September 2013).
  17. Wladimir J. van der Laan. More etna_viv news (англ.) (28 August 2013).
  18. Etnaviv (драйвер для GPU Vivante): Нужна помощь! (11 октября 2013).
  19. Wladimir J. van der Laan. Etnaviv: Help needed (англ.) (8 October 2013).
  20. Опубликован код драйвера для видеоускорителя Broadcom VideoCore, используемого в Raspberry Pi

Ссылки[править | править вики-текст]

  • www.omgubuntu.co.uk/2011/01/ubuntu-graphics-driver-overview/# — An overview of graphic card manufacturers and how well they work with Ubuntu (копия)