Бесплатный драйвер графического устройства с открытым исходным кодом
![]() | В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|

Бесплатный драйвер графического устройства с открытым исходным кодом представляет собой программный стек , который управляет аппаратным обеспечением компьютерной графики и поддерживает (API) для рендеринга графики интерфейсы прикладного программирования и выпускается под лицензией на бесплатное программное обеспечение с открытым исходным кодом . графических Драйверы устройств пишутся для конкретного оборудования, чтобы работать в конкретном ядре операционной системы и поддерживать ряд API-интерфейсов, используемых приложениями для доступа к графическому оборудованию. Они также могут управлять выводом на дисплей, если драйвер дисплея является частью графического оборудования. Большинство бесплатных драйверов графических устройств с открытым исходным кодом разработаны проектом Mesa . Драйвер состоит из компилятора , API рендеринга и программного обеспечения, которое управляет доступом к графическому оборудованию.
Драйверы без свободно (и легально) доступного исходного кода широко известны как бинарные драйверы . Бинарные драйверы, используемые в операционных системах, которые подвержены постоянному развитию и изменению (например, Linux), создают проблемы для конечных пользователей и сопровождающих пакетов . Эти проблемы, влияющие на стабильность, безопасность и производительность системы, являются основной причиной независимой разработки бесплатных драйверов с открытым исходным кодом. Когда техническая документация отсутствует, понимание основного оборудования часто достигается путем реверс-инжиниринга в «чистой комнате» . Исходя из этого понимания, драйверы устройств могут быть написаны и официально опубликованы под любой лицензией на программное обеспечение .
В редких случаях исходный код драйвера производителя доступен в Интернете без свободной лицензии . Это означает, что код можно изучать и изменять для личного использования, но измененный (и обычно исходный) исходный код не может свободно распространяться. Решения ошибок в драйвере не могут быть легко распространены в виде модифицированных версий драйвера. Поэтому полезность таких драйверов значительно снижается по сравнению с бесплатными драйверами с открытым исходным кодом.
Проблемы с проприетарными драйверами
[ редактировать ]Взгляд разработчика программного обеспечения
[ редактировать ]
Существуют возражения против двоичных драйверов, основанные на авторских правах, безопасности, надежности и проблемах разработки. В рамках более широкой кампании против бинарных двоичных объектов ; OpenBSD ведущий разработчик Тео де Раадт заявил, что с бинарным драйвером «невозможно исправить его, когда он сломается (а он сломается)» объявляет, что продукт, основанный на двоичных драйверах, истек , он фактически «сломан навсегда». Когда производитель [1] В проекте также заявлено, что бинарные драйверы [2] "скрыть ошибки и способы их устранения", [3] наблюдение, которое было в некоторой степени подтверждено недостатками, обнаруженными в двоичных драйверах (включая уязвимую ошибку в 3D-драйверах Nvidia, обнаруженную в октябре 2006 года Rapid7 ). Предполагается, что ошибка существует с 2004 года; Nvidia отрицает это, утверждая, что о проблеме им сообщили только в июле 2006 года, а ошибка 2004 года была ошибкой в X.Org (а не в драйвере Nvidia). [4]
Двоичные драйверы часто не работают с текущими версиями программного обеспечения с открытым исходным кодом и редко поддерживают версии разработки программного обеспечения с открытым исходным кодом; Обычно разработчик не может напрямую использовать проприетарные драйверы Nvidia или ATI со снимком разработки X-сервера или снимком разработки ядра Linux. Такие функции, как настройка режима ядра, не могут быть добавлены в двоичные драйверы никем, кроме поставщиков, что предотвращает их включение, если у поставщика недостаточно возможностей или интереса.
В ядра Linux сообществе разработчиков Линус Торвальдс сделал резкие заявления по вопросу о двоичных модулях: «Я отказываюсь даже думать о том, чтобы связать себе руки из-за какого-то модуля, работающего только с двоичными данными… Я хочу, чтобы люди знали это, когда они используют двоичные модули. -только модули, это их проблемы". [5] Другой разработчик ядра, Грег Кроа-Хартман , заявил, что модуль ядра, предназначенный только для двоичных файлов, не соответствует лицензии ядра ( GNU General Public License ); она «просто нарушает GPL из-за забавных вещей, таких как производные работы, ссылки и другие вещи». [6] Писатель и ученый-компьютерщик Питер Гутманн выразил обеспокоенность тем, что схема управления цифровыми правами в операционной системе Microsoft Windows Vista может ограничить доступность документации, необходимой для написания открытых драйверов, поскольку она «требует, чтобы рабочие детали устройства оставались конфиденциальными». [7]
В случае с двоичными драйверами есть возражения, связанные с философией свободного программного обеспечения , качеством программного обеспечения и проблемами безопасности . [8] В 2006 году Грег Кроа-Хартман пришел к выводу, что:
«Модули ядра Linux с закрытым исходным кодом являются незаконными. Вот и все, это очень просто. На протяжении многих лет я имел несчастье разговаривать на эту тему со многими разными юристами в области интеллектуальной собственности, и все, с кем я разговаривал, все согласны что сегодня никто не может создать модуль ядра Linux с закрытым исходным кодом. Это просто нарушает лицензию GPL из-за таких забавных вещей, как производные работы и связывание ». [9]
Ядро Linux никогда не поддерживало стабильный двоичный интерфейс приложений внутри ядра . [10] Существуют также опасения, что проприетарные драйверы могут содержать бэкдоры , подобные тем, которые обнаружены в драйверах модемов серии Samsung Galaxy . [11]
Взгляд разработчика оборудования
[ редактировать ]
Когда такие приложения, как игровой движок 3D или программное обеспечение для компьютерной 3D-графики, переносят вычисления с ЦП на графический процессор, они обычно используют специальный API-интерфейс, такой как OpenGL или Direct3D , и не обращаются напрямую к оборудованию. Поскольку вся трансляция (от вызовов API до кодов операций графического процессора ) выполняется драйвером устройства, она содержит специализированные знания и является объектом оптимизации. Из-за негибкости разработки проприетарных драйверов в последнее время наблюдается резкий рост числа поддерживаемых сообществом драйверов устройств для настольных и мобильных графических процессоров. Организации, занимающиеся свободным и открытым оборудованием, такие как FOSSi, LowRISC и другие, также выиграют от разработки открытого стандарта графического оборудования. Это предоставит производителям компьютеров, любителям и т.п. полную, бесплатную платформу для разработки компьютерного оборудования и связанных с ним устройств.
На рынке настольных компьютеров долгое время доминировало оборудование для ПК, использующее набор инструкций x86 / x86-64 и графические процессоры, доступные для ПК. С тремя основными конкурентами (Nvidia, AMD и Intel). Основным конкурирующим фактором была цена оборудования и чистая производительность в компьютерных 3D-играх, на которую сильно повлияла эффективная трансляция вызовов API в коды операций графического процессора. Драйвер дисплея и видеодекодер являются неотъемлемыми частями видеокарты: аппаратное обеспечение, предназначенное для помощи в вычислениях, необходимых для декодирования видеопотоков. Поскольку рынок аппаратного обеспечения для ПК сократился, маловероятно, что на этот рынок выйдут новые конкуренты, и неясно, сколько еще знаний может получить одна компания, увидев исходный код драйверов других компаний.
В мобильном секторе ситуация иная. Функциональные блоки ( драйвер дисплея интегральной схемы для конкретного приложения , 2- и 3D-ускорение, а также декодирование и кодирование видео) представляют собой отдельные блоки полупроводниковой интеллектуальной собственности (SIP) на кристалле, поскольку аппаратные устройства существенно различаются; некоторым портативным медиаплеерам требуется драйвер дисплея, который ускоряет декодирование видео, но не требует 3D-ускорения. Целью разработки является не только чистая производительность 3D, но и системная интеграция, энергопотребление и возможности 2D. Существует также подход, который отказывается от традиционного метода ( Vsync ) обновления дисплея и лучше использует технологию выборки и хранения для снижения энергопотребления.
Во втором квартале 2013 года 79,3 процента смартфонов, проданных по всему миру, работали под управлением версии Android . [12] а ядро Linux доминирует в смартфонах. У разработчиков оборудования есть стимул поставлять драйверы Linux для своего оборудования, но из-за конкуренции у них нет стимула делать эти драйверы бесплатными и с открытым исходным кодом. Дополнительными проблемами являются специфичные для Android дополнения к ядру Linux, которые не были приняты в основной ветке , такие как Atomic Display Framework (ADF). [13] ADF — это функция ядер AOSP 3.10, которая обеспечивает структуру, ориентированную на dma-buf, hwcomposer Android между HAL и драйвером ядра. ADF существенно пересекается с инфраструктурой DRM - KMS . ADF не был принят в основную ветку, но другой набор решений, решающих те же проблемы (известный как установка атомарного режима ), находится в стадии разработки. Такие проекты, как libhybris, используют драйверы устройств Android для работы на платформах Linux, отличных от Android.
Архитектура программного обеспечения
[ редактировать ]

Бесплатные драйверы с открытым исходным кодом в основном разрабатываются для Linux разработчиками ядра Linux, сторонними энтузиастами программирования и сотрудниками таких компаний, как Advanced Micro Devices . Каждый драйвер состоит из пяти частей:
- Компонент ядра Linux DRM
- компонента ядра Linux Драйвер KMS ( драйвер контроллера дисплея )
- Компонент пользовательского пространства libDRM (библиотека-оболочка для системных вызовов DRM, которая должна использоваться только Mesa 3D)
- Компонент Mesa 3D пользовательского пространства . Этот компонент зависит от оборудования; он выполняется на ЦП и преобразует команды OpenGL, например, в машинный код для графического процессора. Поскольку драйвер устройства разделен, маршалинг возможен. Mesa 3D — единственная бесплатная реализация OpenGL , OpenGL ES , OpenVG , GLX , EGL и OpenCL с открытым исходным кодом . В июле 2014 года большинство компонентов соответствовало спецификациям Gallium3D . Полнофункциональное средство отслеживания состояния для Direct3D версии 9 написано на C , а необслуживаемое средство отслеживания для Direct3D версий 10 и 11 написано на C++ . [14] Wine имеет Direct3D версии 9. Другой компонент Wine преобразует вызовы Direct3D в вызовы OpenGL, работая с OpenGL.
- Device Dependent X (DDX), еще один драйвер 2D-графического устройства для сервера X.Org.
DRM ядра зависит от . Драйвер VESA обычно доступен для любой операционной системы. Драйвер VESA поддерживает большинство видеокарт без ускорения и с разрешениями дисплея, ограниченными набором, запрограммированным производителем в Video BIOS. [15]
История
[ редактировать ]Графический стек Linux эволюционировал, отклоняясь от основного протокола X Window System .
-
2D-драйверы на X-сервере
-
Весь доступ осуществляется через Direct Rendering Manager.
-
В ядре Linux 3.12 узлы рендеринга объединены, а настройки режима разделены. Wayland реализует прямой рендеринг через EGL .
Бесплатные драйверы с открытым исходным кодом
[ редактировать ]АТИ и АМД
[ редактировать ]Радеон
[ редактировать ]
Собственный драйвер AMD , AMD Catalyst для Radeon , доступен для Microsoft Windows и Linux (ранее fglrx). Текущую версию можно загрузить с сайта AMD, а некоторые дистрибутивы Linux содержат ее в своих репозиториях. Он находится в процессе замены гибридным драйвером AMDGPU-PRO, сочетающим ядро с открытым исходным кодом, мультимедийные драйверы X и Mesa с драйверами OpenGL, OpenCL и Vulkan с закрытым исходным кодом, полученными из Catalyst.
Драйверы FOSS для графических процессоров ATI -AMD разрабатываются под названием Radeon (xf86-video-ati или xserver-xorg-video-radeon). Им по-прежнему приходится загружать собственный микрокод в графический процессор, чтобы обеспечить аппаратное ускорение. [16] [ не удалось пройти проверку ]
Код Radeon 3D разделен на шесть драйверов в зависимости от технологии графического процессора: классические драйверы radeon, r200 и r300 и драйверы r300g, r600g и radeonsi Gallium3D :
- Radeon поддерживает серию R100 .
- R200 поддерживает серию R200 .
- R300g поддерживает предварительно шейдерных моделей унифицированные микроархитектуры : R300 , R400 и R500 .
- R600g поддерживает все графические процессоры на базе TeraScale (VLIW5/4) : R600 , R700 , HD 5000 (Evergreen) и HD 6000 (Северные острова) .
- Radeonsi поддерживает все графические процессоры на базе Graphics Core Next : HD 7000 , HD 8000 и Rx 200 (Южные острова, Морские острова и вулканические острова).
Доступна актуальная матрица функций, [17] и есть поддержка Video Coding Engine [18] и унифицированный видеодекодер . [19] [20] Бесплатные драйверы графических устройств Radeon с открытым исходным кодом не подвергаются обратному проектированию, а основаны на документации, выпущенной AMD без требования подписывать соглашение о неразглашении (NDA). [21] [22] [23] Документация начала постепенно выпускаться в 2007 году. [24] [25] [26]
Помимо предоставления необходимой документации сотрудники AMD предоставляют код для поддержки своего оборудования и функций. [18]
Все компоненты драйвера графического устройства Radeon разработаны основными участниками и заинтересованными сторонами по всему миру. В 2011 году r300g в некоторых случаях превзошел Catalyst.
AMDGPU
[ редактировать ]На конференции разработчиков игр 2014 года компания AMD объявила, что они изучают изменение стратегии, чтобы перебазировать часть пользовательского пространства Catalyst на бесплатный модуль ядра DRM с открытым исходным кодом вместо своего собственного BLOB- объекта ядра . [27]
О выпуске нового модуля ядра и стека AMDGPU было объявлено в списке рассылки dri-devel в апреле 2015 года. [28] Хотя AMDGPU официально поддерживает только GCN 1.2 и более поздних версий, видеокарты [29] экспериментальную поддержку видеокарт GCN 1.0 и 1.1 (которые официально поддерживаются только драйвером Radeon) можно включить с помощью параметра ядра. [30] [31] Отдельный libdrm , libdrm-amdgpu, был включен начиная с libdrm 2.4.63. [32]
Код radeonsi 3D, упомянутый в предыдущем параграфе о Radeon, также используется с amdgpu; 3D-драйвер имеет серверную часть как для Radeon, так и для amdgpu.
Нвидиа
[ редактировать ]
Nvidia Собственный драйвер , драйвер Nvidia GeForce для GeForce , доступен для Windows x86 / x86-64 , Linux x86/x86-64/ ARM , OS X 10.5 и более поздних версий, Solaris x86/x86-64 и FreeBSD x86/x86-64. . Текущую версию можно загрузить из Интернета, и некоторые дистрибутивы Linux содержат ее в своих репозиториях. драйвер Nvidia GeForce 331.13 от 4 октября 2013 г. Бета- поддерживает интерфейс EGL , что обеспечивает поддержку Wayland в сочетании с этим драйвером. [33] [34]
Бесплатный драйвер Nvidia с открытым исходным кодом называется nv. [35] Он ограничен (поддерживает только 2D-ускорение), а Мэтью Гарретт , Дирк Хондел и другие назвали его исходный код запутанным. [36] [37] [38] В марте 2010 года Nvidia решила прекратить поддержку nv, не добавляя поддержку графических процессоров Fermi или более поздних версий и DisplayPort . [39]
В декабре 2009 года Nvidia объявила, что не будет поддерживать инициативы по бесплатной графике. [40] 23 сентября 2013 года компания объявила, что опубликует некоторую документацию по своим графическим процессорам. [41]
Nouveau почти полностью основан на информации, полученной посредством реверс-инжиниринга . Целью этого проекта является создание 3D-ускорения для X.Org/ Wayland с использованием Gallium3D . [42] 26 марта 2012 г. компонент DRM Nouveau был помечен как стабильный и переведен из промежуточной области ядра Linux. [43] Nouveau поддерживает графические процессоры на базе Tesla (и ранее), Fermi , Kepler и Maxwell . [44] 31 января 2014 года сотрудник Nvidia Александр Курбо выпустил обширный набор патчей, который добавляет первоначальную поддержку GK20A ( Tegra K1 ) в Nouveau. [45] Сообщается, что в июне 2014 года компания Codethink запустила Wayland на базе Weston наборщик с ядром Linux 3.15, используя EGL и «стек графических драйверов со 100% открытым исходным кодом» на Tegra K1 . [46] Имеется матрица функций. [47] В июле 2014 года Nouveau не смог превзойти драйвер Nvidia GeForce из-за отсутствия поддержки повторной тактовой частоты. Tegra-re — это проект, который занимается реверс-инжинирингом VLIW от nVidia, которые предшествовали Tegra K1. на базе Tegra серии графических процессоров [48]
Nvidia распространяет проприетарные драйверы устройств для Tegra через OEM-производителей и как часть своего комплекта разработки Linux для Tegra (ранее L4T). [49] Nvidia и ее партнер Avionic Design работали над внедрением Grate (бесплатных драйверов с открытым исходным кодом для Tegra) в качестве дополнения к основному ядру Linux в апреле 2012 года. [50] [51] Соучредитель и генеральный директор компании изложил план развития процессоров Tegra с Ubuntu Unity на конференции по технологиям графических процессоров 2013 года . [52]
Драйвер Unified Memory от Nvidia (nvidia-uvm.ko), который реализует управление памятью для графических процессоров Pascal и Volta в Linux, имеет лицензию MIT. Исходный код доступен для загрузки драйверов Nvidia Linux для систем, поддерживающих nvidia-uvm.ko.
В мае 2022 года Nvidia объявила о новой инициативе и политике открытия исходного кода своих графического процессора загружаемых модулей ядра с двойной GPL / лицензией MIT , но только новых моделей в альфа- качестве. Но сказал: «Эти изменения касаются модулей ядра, тогда как компоненты пользовательского режима остаются нетронутыми. Пользовательский режим остается с закрытым исходным кодом и публикуется с предварительно созданными двоичными файлами в драйвере и наборе инструментов CUDA». [53]
Интел
[ редактировать ]Intel имеет опыт производства (или ввода в эксплуатацию) драйверов с открытым исходным кодом для своих графических чипов, за исключением чипов на базе PowerVR . [54] Их драйвер 2D X.Org называется xf86-video-intel. Драйвер настройки режима ядра в ядре Linux не использует видеоBIOS для переключения режимов видео ; поскольку некоторые BIOS имеют ограниченный набор режимов, это обеспечивает более надежный доступ к тем, которые поддерживаются видеоадаптерами Intel.
В 2011 году компания работала над оптимизацией своих бесплатных драйверов для Linux для обеспечения производительности, приближающейся к их аналогам для Windows , особенно на Sandy Bridge и более новом оборудовании, где оптимизация производительности позволила драйверу Intel превзойти их проприетарные драйверы для Windows в определенных задачах. [55] [56] [57] Некоторые улучшения производительности могут также принести пользу пользователям старого оборудования. [58]
Поддержка Intel LLC (Last Level Cache, L4-Cache, Crystalwell и Iris Pro) была добавлена в ядро Linux 3.12. [59] [60] В 2013 году в компании работало от 20 до 30 штатных разработчиков графики для Linux. [61]
Матрокс
[ редактировать ]Matrox разрабатывает и производит Matrox Mystique , Parhelia , G200 , G400 и G550 . Хотя компания предоставляет бесплатные драйверы с открытым исходным кодом для своих чипсетов, которые старше G550; чипсеты новее, чем G550, поддерживаются драйвером с закрытым исходным кодом.
Графика S3
[ редактировать ]S3 Graphics разрабатывает S3 Trio , ViRGE , Savage и Chrome , поддерживаемые OpenChrome. [62]
ООО Арм
[ редактировать ]Arm Ltd — полупроводниковая компания, которая лицензирует полупроводниковые ядра интеллектуальной собственности . Хотя они известны тем, что лицензируют набор инструкций ARM и процессоры на его основе, они также разрабатывают и лицензируют серию графических процессоров Mali , а в последнее время и графические процессоры Imortalis, поддерживающие трассировку лучей. 21 января 2012 года Phoronix сообщил, что Люк Верхаген предпринимал попытку обратного проектирования, направленную на серию графических процессоров Arm Mali (в частности, версии Mali-200 и Mali-400). Проект реверс-инжиниринга, известный как Lima, был представлен на FOSDEM 4 февраля 2012 года. [63] [64] 2 февраля 2013 года Верхаген продемонстрировал Quake III Arena в демо-режиме, работающем поверх драйвера Lima. [65] В мае 2018 года разработчик Lima опубликовал драйвер для включения в ядро Linux. [66] По состоянию на май 2019 года драйвер Lima является частью основного ядра Linux. [67]
Panfrost — это переработанный драйвер для графических процессоров Mali Txxx (Midgard) и Gxx (Bifrost). Доклад о Panfrost был представлен на конференции разработчиков X.Org 2018. По состоянию на май 2019 года драйвер Panfrost является частью основного ядра Linux. [68]
ARM не заявила о намерении предоставлять поддержку своего оборудования для ускорения графики, лицензируемого по бесплатной лицензии с открытым исходным кодом. Однако в декабре 2015 и апреле 2016 года сотрудники ARM прислали патчи для ядра Linux для поддержки своего контроллера дисплея ARM HDLCD и SIP-блоков Mali DP500, DP550 и DP650. [69] [70]
Технологии воображения
[ редактировать ]Imagination Technologies — это полупроводниковая компания, не имеющая собственного производства, которая разрабатывает и лицензирует полупроводниковые ядра интеллектуальной собственности , среди которых графические процессоры PowerVR . Intel выпустила ряд графических процессоров на базе PowerVR . Графические процессоры PowerVR широко используются в мобильных SoC . Из-за его широкого использования во встроенных устройствах Фонд свободного программного обеспечения включил реверс-инжиниринг драйвера PowerVR в список своих высокоприоритетных проектов. [71] По состоянию на март 2022 года компания Imagination предоставила драйвер FOSS для своего PowerVR GX6250 на базе архитектуры Rogue, выпущенного в 2014 году на базе архитектуры серии A. своих более поздних графических процессоров AXE-1-16M и BXS-4-64 , а также для [72]
Живой
[ редактировать ]Vivante Corporation — полупроводниковая компания без собственных производственных мощностей, которая лицензирует полупроводниковые ядра интеллектуальной собственности и разрабатывает серию графических процессоров GCxxxx. Собственный драйвер Linux с закрытым исходным кодом Vivante состоит из частей ядра и пользовательского пространства. Хотя компонент ядра имеет открытый исходный код ( GPL ), компоненты пользовательского пространства, состоящие из реализаций GLES(2) и библиотеки HAL, — нет; они содержат большую часть логики драйвера.
Владимир Дж. ван дер Лаан нашел и задокументировал биты состояния, поток команд и шейдер ISA, изучая, как работают большие двоичные объекты, исследуя дампы командного потока и манипулируя ими. Драйвер Etnaviv Gallium3D пишется на основе этой документации. Работа Ван дер Лаана была вдохновлена драйвером Lima, и в результате проекта был создан функциональный, но неоптимизированный драйвер Gallium3D LLVM. Драйвер Etnaviv показал лучшие результаты, чем собственный код Vivante в некоторых тестах, и поддерживает серии Vivante GC400, GC800, GC1000, GC2000, GC3000 и GC7000. [73] В январе 2017 года Etnaviv был добавлен в Mesa с поддержкой OpenGL ES 2.0 и Desktop OpenGL 2.1. [74]
Квалкомм
[ редактировать ]Qualcomm разрабатывает серию мобильных графических процессоров Adreno (ранее ATI Imageon ) и включает ее в свою серию мобильных SoC Snapdragon . В 2012 году Phoronix и Slashdot сообщили, что Роб Кларк, вдохновленный драйвером Lima, работал над обратным проектированием драйверов для серии графических процессоров Adreno. [75] [76] В упомянутом сообщении в блоге Кларк написал, что занимался этим проектом в свободное время и что платформа Qualcomm была его единственной реальной целью для работы над открытой 3D-графикой. Его работодатели ( Texas Instruments и Linaro ) были связаны с ядрами Imagination PowerVR и ARM Mali , которые были его основными целями; у него были рабочие потоки команд для поддержки 2D, и команды 3D, казалось, имели те же характеристики. [77] Код драйвера был опубликован на Gitorious "freedreno", [78] и был перенесен в Месу. [79] [80] В 2012 году был завершен работающий ассемблер шейдеров; [81] были разработаны демонстрационные версии для наложения текстур. [82] и фонговое затенение , [83] используя реверс-инжиниринг шейдерного компилятора. Кларк продемонстрировал Фридрено, использующую компоновку рабочего стола, XBMC медиаплеер и Quake III Arena на FOSDEM 2 февраля 2013 года. [84]
В августе 2013 года компонент ядра freedreno (драйвер MSM) был принят в основную версию и доступен в ядре Linux 3.12 и более поздних версиях. [85] В июле 2014 года драйвер DDX , управляемых сервером, получил поддержку файловых дескрипторов для которых требуется X.Org Server версии 1.16 и выше. [86] В январе 2016 года драйвер в стиле Mesa Gallium3D получил поддержку Adreno 430; [87] в ноябре того же года в драйвер добавлена поддержка серии Adreno 500. [88] Freedreno можно использовать на таких устройствах, как 96Boards Dragonboard 410c и Nexus 7 (2013 г.), в традиционных дистрибутивах Linux (например, Debian и Fedora ) и на Android .
Бродком
[ редактировать ]
Broadcom разрабатывает и проектирует серию графических процессоров VideoCore как часть своих SoC . Поскольку он используется Raspberry Pi , существует значительный интерес к драйверу FOSS для VideoCore. [90] Фонд Raspberry Pi в сотрудничестве с Broadcom объявил 24 октября 2012 года, что они открыли исходный код «весь код ARM (ЦП), который управляет графическим процессором». [ нужна ссылка ] Однако это объявление вводило в заблуждение; По словам автора восстановленного драйвера Lima, новые компоненты с открытым исходным кодом позволяли только передавать сообщения между процессором ARM и VideoCore, но давали мало информации о Videocore и мало дополнительных возможностей программирования. [91] Графический процессор Videocore запускает RTOS , которая отвечает за обработку; ускорение видео осуществляется с помощью прошивки RTOS, закодированной для собственного графического процессора, и на тот момент исходный код прошивки не был открыт. [92] Поскольку не было ни набора инструментов, предназначенного для проприетарного графического процессора, ни документированного набора инструкций , невозможно было получить никаких преимуществ, если бы исходный код прошивки стал доступен. Проект Видеокорейв [93] попытался документировать графические процессоры VideoCore.
28 февраля 2014 года (вторая годовщина Raspberry Pi) Broadcom и Raspberry Pi Foundation объявили о выпуске полной документации по графическому ядру VideoCore IV и выпуске полного исходного кода графического стека под лицензией BSD из 3 пунктов . [94] [95] Код 3D-графики со свободной лицензией был передан Mesa 29 августа 2014 года. [96] и впервые появился в версии Mesa 10.3.
Другие поставщики
[ редактировать ]Хотя Silicon Integrated Systems и VIA Technologies проявили ограниченный интерес к драйверам с открытым исходным кодом, обе они выпустили исходный код, который был интегрирован в X.Org разработчиками FOSS. [38] В июле 2008 года VIA открыла документацию по своим продуктам, чтобы улучшить свой имидж в сообществах Linux и разработчиков открытого исходного кода. [97] Компания не смогла сотрудничать с сообществом разработчиков программного обеспечения с открытым исходным кодом, чтобы предоставить документацию и работающий драйвер DRM , в результате чего ожидания поддержки Linux не оправдались. [98] 6 января 2011 года было объявлено, что VIA больше не заинтересована в поддержке инициатив в области бесплатной графики. [99]
DisplayLink анонсировала проект с открытым исходным кодом Libdlo. [100] с целью обеспечить поддержку своей графической технологии USB в Linux и других платформах. Его код доступен по лицензии LGPL . [101] но он не интегрирован в драйвер X.Org . Поддержка графики DisplayLink доступна через драйвер ядра udlfb (с fbdev) в основной строке и драйвер udl/drm, который в марте 2012 года был доступен только в дереве drm-next.
Поставщики, не связанные с аппаратным обеспечением, также могут поддержать инициативы по бесплатной графике. В Red Hat работают два штатных сотрудника (Дэвид Эйрли и Жером Глисс), работающие над программным обеспечением Radeon. [102] а проект Fedora спонсирует Неделю тестирования графики Fedora перед запуском новых версий дистрибутива Linux для тестирования бесплатных графических драйверов. [103] Другие компании, обеспечившие разработку или поддержку, включают Novell и VMware .
Открытые аппаратные проекты
[ редактировать ]

Проект VGA направлен на создание малобюджетной VGA -совместимой видеокарты с открытым исходным кодом. [104] Проект Open Graphics направлен на создание графического процессора с открытым аппаратным обеспечением. Open Graphics Device v1 имеет два выхода DVI-I и 100-контактный разъем IDC. В сентябре 2010 года первые 25 плат OGD1 были доступны для подачи заявок на грант и приобретения. [105] Система Milkymist на кристалле , ориентированная на встроенную графику, а не на настольные компьютеры, поддерживает выход VGA, ограниченный вершинный шейдер и блок 2D-текстурирования. [106]
Нити, [107] экспериментальный процессор GPGPU, включает в себя синтезируемую аппаратную конструкцию, написанную на System Verilog , эмулятор набора команд, LLVM компилятор C-C++ на основе , программные библиотеки и тесты, а также исследует параллельное программное и аппаратное обеспечение. Он может работать на программируемой пользователем плате вентильной матрицы Terasic DE2-115 . [108] [109]
Если в проекте используются FPGA, он обычно имеет частично (или полностью) инструментальную цепочку с закрытым исходным кодом. Однако в настоящее время существует несколько наборов инструментов с открытым исходным кодом для FPGA на основе Lattice (особенно для плат iCE40 и ECP5), которые используют Project IceStorm, [110] и Треллис, [111] соответственно. Также продолжается более масштабная работа по созданию «GCC FPGA» под названием SymbiFlow. [112] который включает в себя вышеупомянутые наборы инструментов FPGA, а также набор инструментов с открытым исходным кодом ранней стадии для FPGA на базе Xilinx.
См. также
[ редактировать ]- 3D компьютерная графика
- Ячейка (процессор)
- Инфраструктура прямого рендеринга (DRI)
- Интел ГМА
- Открыть графический проект
Ссылки
[ редактировать ]- ^ Тео де Раадт (3 декабря 2006 г.). «Открытая документация по оборудованию» . Слайды презентации с OpenCON 2006 . Проверено 1 февраля 2007 г.
- ^ «Что означает «двоичный» в драйвере устройства?» . Проверено 14 ноября 2017 г.
- ^ «3.9: «Капля!» » . OpenBSD . Проверено 12 февраля 2007 г.
- ^ «Linux — как Rapid7 Advisory R7-0025 влияет на драйвер NVIDIA Unix?» .
- ^ "a/lt-двоичный" .
- ^ Кроа-Хартман, Грег. «Мифы, ложь и правда о ядре Linux» . Журнал обезьян ядра Linux.
- ^ Питер Гутманн (26 декабря 2006 г.). «Анализ затрат на защиту содержимого Windows Vista» . Проверено 28 января 2007 г.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ Linux Weekly News, 14 августа 2006 г.: X.org, дистрибьюторы и проприетарные модули.
- ^ Грег Кроа-Хартман (2006). «Мифы, ложь и правда о ядре Linux» . Симпозиум по Linux .
- ^ «Интерфейс драйвера ядра Linux» . Архивировано из оригинала 4 ноября 2013 г. Проверено 4 марта 2014 г.
- ^ «Самсунг Галактика Бэкдор» . 04.02.2014.
- ^ «Доля Android приближается к 80% в мировых поставках смартфонов, а доля iOS и BlackBerry падает, согласно данным IDC» . 7 августа 2013 г.
- ^ «Атомная структура отображения» .
- ^ «Отслеживание состояния Direct3D 9» . 16 июля 2013 года. Архивировано из оригинала 20 июля 2013 года . Проверено 15 ноября 2017 г.
- ^ «Индекс /doc/Documentation/fb/» . Проверено 15 ноября 2017 г.
- ^ Подробности о пакете прошивки Debian-linux-nonfree в стабильной версии Debian.org.
- ^ «Функция Радеон» . Проверено 15 ноября 2017 г.
- ^ Перейти обратно: а б «начальная поддержка VCE в ядре Linux и драйвере Mesa» . 4 февраля 2014 г.
- ^ "drm-next-3.15 18 февраля" . 18 февраля 2014 г.
- ^ "drm-next-3.15 4 марта" . 4 марта 2014 г.
- ^ «Руководства разработчиков AMD» . Архивировано из оригинала 16 июля 2013 г.
- ^ «Документация предоставлена AMD» .
- ^ «Список документации AMD 3D» . Архивировано из оригинала 7 октября 2013 г.
- ^ «AMD откроет спецификации графики» . LWN.net . 05 сентября 2007 г. Проверено 15 июля 2014 г.
- ^ «AMD: характеристики графического процессора без соглашений о неразглашении!» . 10 сентября 2007 г. Проверено 15 июля 2014 г.
- ^ Дэвид Эйрли (13 сентября 2007 г.). «AMD передал мне характеристики на компакт-диске» . Архивировано из оригинала 22 октября 2012 г. Проверено 15 июля 2014 г.
- ^ «AMD изучает новую стратегию драйверов для Linux» . 22 марта 2014 г. Проверено 23 марта 2014 г.
- ^ «Первоначальная версия драйвера AMDGPU» . 20 апреля 2015 г. Проверено 26 апреля 2016 г.
- ^ «AMD продвигается вперед с унифицированной стратегией драйверов Linux и новым драйвером ядра» . Фороникс .
- ^ «Документация драйвера AMDGPU» . Freedesktop.org .
- ^ «AMD представляет начальную поддержку драйверов AMDGPU для графических процессоров GCN 1.0 / Southern Islands» . Фороникс .
- ^ «libdrm 2.4.63» . 14 августа 2015 г.
- ^ «Поддержка EGL на 32-битных платформах» . 04.10.2013 . Проверено 15 июля 2014 г.
- ^ «Список файлов lib32-nvidia-utils 340.24-1» . 15 июля 2014 г.
- ^ «Страница драйвера X.org nv» . 20 мая 2013 г.
- ^ «Патч Дирка Хондела» . 18 ноября 1998 г. Архивировано из оригинала 1 февраля 2014 г. Проверено 15 июля 2014 г.
... в отличие от такого запутанного кода. Мы не считаем это свободным программным обеспечением по нашим стандартам.
- ^ «Нуво – Сообщество и прошлые, текущие и будущие события» (PDF) . 13 сентября 2011 г. Проверено 15 июля 2014 г.
- ^ Перейти обратно: а б Дэвид М. Эйрли (19 июля 2006 г.). «Графические драйверы с открытым исходным кодом — они не убивают котят» (PDF) . Материалы первого тома симпозиума по Linux . Оттава , Онтарио, Канада. Архивировано из оригинала (PDF) 8 февраля 2007 г. Проверено 28 января 2007 г.
- ^ «Nvidia отказывается от «NV» » . Фороникс . 26 марта 2010 г.
- ^ «Ответ NVIDIA на недавнюю работу в стиле модерн» . Фороникс . 14 декабря 2009 г.
- ^ «Nvidia предлагает опубликовать общедоступную документацию по некоторым аспектам своих графических процессоров» . 23 сентября 2013 г. Проверено 24 сентября 2013 г.
- ^ «Нуво: ускоренный драйвер с открытым исходным кодом для карт nVidia» . Архивировано из оригинала 23 июля 2014 г. Проверено 10 августа 2006 г.
- ^ «Водитель-нувоист заканчивает постановку» . LWN.net . 23 марта 2012 г.
- ^ «Инженерные имена для Nvidia» .
- ^ «drm/nouveau: начальная поддержка GK20A (Tegra K1)» . 31 января 2014 г.
- ^ «Codethink запускает NVIDIA Jetson TK1 с Linux 3.15, Wayland» . Фороникс . 12 июня 2014 г.
- ^ «Матрица функций драйверов Nouveau» . Проверено 16 ноября 2017 г.
- ^ «Тегра-ре» . Гитхаб . Проверено 16 ноября 2017 г.
- ^ «Архив Linux для Tegra» . 30 января 2014 года . Проверено 16 ноября 2017 г.
- ^ Мэйо, Джон (20 апреля 2012 г.). «[RFC 0/4] Добавить поддержку NVIDIA Tegra DRM» . dri-devel (список рассылки) . Проверено 21 августа 2012 г.
- ^ Ларабель, Майкл (11 апреля 2012 г.). «Советы по драйверу DRM/KMS для NVIDIA Tegra 2» . Фороникс Медиа . Проверено 21 августа 2012 г.
- ^ «GTC 2013: Дорожная карта NVIDIA Tegra (6 из 11)» . Ютуб. Архивировано из оригинала 21 декабря 2021 г. Проверено 10 июля 2013 г.
- ^ «NVIDIA выпускает модули ядра графического процессора с открытым исходным кодом» . 19 мая 2022 г. Проверено 7 июня 2022 г.
- ^ Обзор производителей видеокарт и того, насколько хорошо они работают с Ubuntu Ubuntu Gamer, 10 января 2011 г. (статья Люка Бенстеда); ( копия статьи )
- ^ «Больше производительности дает Intel Linux SNB» . Фороникс . 22 марта 2011 г. Проверено 23 марта 2011 г.
- ^ «Производительность Intel Sandy Bridge снова выросла» . Фороникс . 31 марта 2011 г. Проверено 31 марта 2011 г.
- ^ «Драйвер Intel SNB Linux может превосходить драйвер Windows» . Фороникс . 23 мая 2011 г. Проверено 23 мая 2011 г.
- ^ «Исторический взгляд на производительность графики Intel Ironlake» . Фороникс . 25 мая 2011 г. Проверено 25 мая 2011 г.
- ^ «drm/i915: использовать eLLC/LLC по умолчанию, если доступно» .
- ^ «drm/i915: использовать кэширование сквозной записи для плоскости отображения на диафрагме» .
- ^ «В штате Intel 20–30 штатных разработчиков графики для Linux» . 2 февраля 2013 г.
- ^ «ОпенХром» . Проверено 16 ноября 2017 г.
- ^ фороникс (6 февраля 2012 г.). «Phoronix.com — FOSDEM 2012 — ARM Mali с открытым исходным кодом» . Архивировано из оригинала 21 декабря 2021 г. – на YouTube.
- ^ Phoronix, 21 января 2012 г.: Драйвер графического процессора Mali с открытым исходным кодом, реверс-инжиниринг
- ^ «Тайм-демо Quake 3 Arena на вершине лимского водителя!» . Архивировано из оригинала 9 февраля 2013 г.
- ^ «Драйвер Lima DRM [LWN.net]» . lwn.net .
- ^ drm/lima: драйвер для графических процессоров ARM Mali4xx}
- ^ drm/panfrost: добавить исходный драйвер panfrost.
- ^ «drm: добавить поддержку контроллера дисплея ARM HDLCD» . Список рассылки ядра Linux . 11 декабря 2015 г.
- ^ «Первоначальная поддержка контроллера дисплея ARM Mali» . Список рассылки ядра Linux . 01 апреля 2016 г.
- ^ Фонд свободного программного обеспечения, 25 апреля 2005 г.: Высокоприоритетные проекты свободного программного обеспечения.
- ^ «Imagination Tech публикует драйвер PowerVR Vulkan с открытым исходным кодом для Mesa» . www.phoronix.com . Проверено 19 апреля 2022 г.
- ^ "laanwj/etna_viv" . Гитхаб .
- ^ «etnaviv: драйвер Gallium для графических процессоров Vivante» .
- ^ Майкл Ларабель (14 апреля 2012 г.). «Графический драйвер с открытым исходным кодом для Snapdragon» . Фороникс . Проверено 15 апреля 2012 г.
- ^ Соулскилл (14 апреля 2012 г.). «Опубликован драйвер графического процессора Qualcomm с открытым исходным кодом» . Слэшдот . Проверено 15 апреля 2012 г.
- ^ Роб Кларк (14 апреля 2012 г.). «Борьба с бинарными объектами!» . Линаро . Проверено 15 апреля 2012 г.
- ^ Фридрено, 15 апреля 2012 г. Архивировано 24 октября 2012 г. в Wayback Machine.
- ^ «Mesa/Gallium3D получает свой первый драйвер графического процессора ARM SoC — Phoronix» .
- ^ «Mesa (master): r600g: добавьте идентификаторы PCI Richland APU» . 15 марта 2013 г.
- ^ Роб Кларк (29 июля 2012 г.). «Обновление freedreno: сначала рендерится ассемблер шейдеров!» . Проверено 16 августа 2012 г.
- ^ Роб Кларк (5 августа 2012 г.). «текстурированный куб (полноэкранный!)» . Проверено 16 августа 2012 г.
- ^ Роб Кларк (15 августа 2012 г.). «Открытый исходный код, лолскат!» . Проверено 16 августа 2012 г.
- ^ «Открыть драйверы графического процессора ARM – Freedreno» . ФОСДЕМ . 02.02.2013 . Проверено 15 июля 2014 г.
- ^ «Слить драйвер MSM от Роба Кларка» . ядро.орг . 28 августа 2013 г. Проверено 4 июня 2014 г.
- ^ "xf86-video-freedreno 1.2.0" . сайт freedesktop.org . 14 июля 2014 г.
- ^ «Добавить поддержку адрено 430» . Проверено 15 ноября 2017 г.
- ^ «Индекс Меса-Меса» . Проверено 15 ноября 2017 г.
- ^ Анхольт, Эрик (17 июня 2014 г.). «Новая работа в Broadcom» . Архивировано из оригинала 7 апреля 2015 г.
- ^ «Phoronix на графическом процессоре Raspberry Pi» .
- ^ «Пользовательская среда ARM с открытым исходным кодом — Raspberry Pi» . 24 октября 2012 г.
- ^ «Пользовательская среда ARM с открытым исходным кодом — Raspberry Pi» . 24 октября 2012 г. Архивировано из оригинала 30 октября 2012 г. Проверено 1 ноября 2012 г.
- ^ "Германэрмитаж/видеокорив" . Гитхаб .
- ^ «Raspberry Pi отмечает свой второй день рождения, планируя выпуск графического драйвера с открытым исходным кодом» . 28 февраля 2014 г.
- ^ Аптон, Эбен (28 февраля 2014 г.). «Подарок на день рождения от Broadcom — Raspberry Pi» . Фонд Raspberry Pi . Проверено 8 июля 2019 г.
- ^ «vc4: первоначальный импорт скелетного драйвера» . Библиотека 3D-графики Mesa. 09.08.2014.
- ^ Майкл Ларабель (26 июля 2008 г.). «ВИА публикует три руководства по программированию» . Фороникс . Проверено 4 августа 2008 г.
- ^ Майкл Ларабель (21 ноября 2009 г.). «Список дел для Linux от VIA… Может быть, с нетерпением ждем 2011 года?» . Фороникс . Проверено 30 декабря 2009 г.
- ↑ Открытый графический драйвер VIA для Linux защитён Phoronix , 6 января 2011 г. (статья Майкла Ларабель )
- ^ «Либдло» . Проверено 16 ноября 2017 г.
- ^ «DisplayLink выпускает исходный код Linux для своих графических процессоров USB» (пресс-релиз). Дисплейссылка. 15 мая 2009 г. Проверено 15 мая 2009 г.
- ^ AMD нанимает еще одного разработчика драйверов с открытым исходным кодом Phoronix , 11 декабря 2010 г. (статья Майкла Ларабель )
- ↑ Это неделя тестирования графики Fedora Phoronix , 22 февраля 2011 г. (статья Майкла Ларабель )
- ^ «Дом Project VGA, малобюджетной видеокарты с открытым исходным кодом, совместимой с VGA» . 090503 wacco.mveas.com
- ^ «Фонд Linux: OGD1» . Откройте графический проект . 23 сентября 2010 г. Проверено 4 ноября 2011 г.
- ^ Бурдодук, Себастьян (июнь 2010 г.). «Архитектура SoC, ориентированная на производительность, для синтеза видео» (PDF) . Архивировано из оригинала (PDF) 27 июля 2011 г. Проверено 5 ноября 2010 г.
- ^ «Ньюзи — экспериментальный GPGPU-процессор» . Гитхаб . Июнь 2021.
- ^ «Тестовая среда SOC» . Гитхаб .
- ^ «Работа на плате Terasic DE2-115 FPGA» . Гитхаб .
- ^ «Домашняя страница проекта IceStorm» . 21 января 2022 г.
- ^ «Репозиторий проекта Trellis» . Гитхаб . 30 мая 2021 г.
- ^ «Домашняя страница SymbiFlow» .
Внешние ссылки
[ редактировать ]
- Графические драйверы Linux от Intel
- Лучшая видеокарта для Linux, заархивировано 25 марта 2017 г. на Wayback Machine
- Страница портала драйверов NVIDIA для Unix
- Проект ВГА
- Трекер состояния Direct3D 9 на Gallium3D
- d3d1x: добавлен новый трекер состояния COM Direct3D 10/11 для Gallium.
- Домашняя страница Фридрено
- Обновление Фридрено/Галлия
- Тестовый набор Фороникс
- Обновления статуса трех графических драйверов (Nouveau, amdgpu и Etnaviv) LWN.net 2015