Графическое оборудование и Свободное программное обеспечение

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

Графическое оборудование и Свободное программное обеспечение — вводная информация о графическом оборудовании с свободном программном обеспечении.

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

Сайт 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 Архивная копия от 10 мая 2013 на Wayback Machine). В апреле 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 Архивная копия от 11 мая 2013 на Wayback Machine, который изначально поддерживал те же модели, но в новых версиях 2.0 и 2.1 добавлена поддержка G33, Q33 и Q35.

Matrox[править]

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

ARM[править]

 → Mali (GPU)

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

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

Qualcomm[править]

 → 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[править]

 → Vivante Corporation

Лицензируемые 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[en][17]. Тем не менее проект находится на начальной стадии развития и автор призывает к помощи в развитии проекта[18][19].

Broadcom[править]

 → Broadcom

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

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

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

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

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

Примечания[править]

  1. Описание драйвера radeon Архивная копия от 25 марта 2013 на Wayback Machine на сайте freedesktop.org
  2. В MESA-драйвере RadeonSI реализована поддержка тайлинга и сжатых текстур. Архивировано из первоисточника 20 мая 2013. Проверено 26 апреля 2013.
  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. Архивировано из первоисточника 12 ноября 2012. Проверено 14 ноября 2012.
  6. Mayo, Jon [RFC 0/4] Add NVIDIA Tegra DRM support. Список рассылки (2012-04-20). Проверено 21 августа 2012.
  7. Larabel, Michael A NVIDIA Tegra 2 DRM/KMS Driver Tips Up. Phoronix Media (2012-04-11). Архивировано из первоисточника 19 апреля 2013. Проверено 21 августа 2012.
  8. Ответ Intel по поводу поддержки GMA 3600 в линукс Архивная копия от 9 июня 2013 на Wayback Machine
  9. Hardware Abstraction Layer by Matrox for G400/450/550 англ.. dri.freedesktop.org. — Бинарный модуль HAL от Matrox для обеспечения дополнительной функциональности чипов G400/450/550. Архивировано из первоисточника 22 марта 2017. Проверено 22 марта 2017.
  10. Представлен открытый драйвер для используемого во многих ARM-чипах GPU Mali. Архивировано из первоисточника 12 мая 2012. Проверено 19 октября 2012.
  11. Сборка «Picuntu» для Rockchip RK 3066. Архивировано из первоисточника 6 мая 2013. Проверено 2 мая 2013.
  12. В Mesa добавлена поддержка первого драйвера GPU для SoC на базе ARM. Архивировано из первоисточника 26 апреля 2013. Проверено 13 марта 2013.
  13. GitHub: laanwj/etna_viv англ.. GitHub (2012-12). — Основная страница ресурса. Архивировано из первоисточника 6 июня 2014. Проверено 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.. Архивировано из первоисточника 27 января 2013. Проверено 14 июня 2013.
  15. GitHub: laanwj/etna_viv Wiki англ.. GitHub (2012-12). — Wiki-страница ресурса. Архивировано из первоисточника 6 июня 2014. Проверено 30 марта 2013.
  16. Wladimir J. van der Laan Q3A with Etna OpenGL ES driver англ. (2013-09-13). Архивировано из первоисточника 15 октября 2013. Проверено 15 октября 2013.
  17. Wladimir J. van der Laan More etna_viv news англ. (2013-08-28). Архивировано из первоисточника 15 октября 2013. Проверено 15 октября 2013.
  18. Etnaviv (драйвер для GPU Vivante): Нужна помощь! (2013-10-11). Архивировано из первоисточника 15 октября 2013. Проверено 15 октября 2013.
  19. Wladimir J. van der Laan Etnaviv: Help needed англ. (2013-10-08). Архивировано из первоисточника 15 октября 2013.
  20. Опубликован код драйвера для видеоускорителя Broadcom VideoCore, используемого в Raspberry Pi. Архивировано из первоисточника 25 октября 2012. Проверено 25 октября 2012.

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