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

Бесплатный драйвер графического устройства с открытым исходным кодом представляет собой программный стек , который управляет аппаратным обеспечением компьютерной графики и поддерживает (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 .
Бесплатные драйверы с открытым исходным кодом [ править ]
ATI и AMD [ править ]
Радеон [ править ]

Собственный драйвер 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. Собственный драйвер Vivante для Linux с закрытым исходным кодом состоит из частей ядра и пользовательского пространства. Хотя компонент ядра имеет открытый исходный код ( 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.04.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