~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 3E691A5DF50F1FDAB294EFB1445324E0__1715383080 ✰
Заголовок документа оригинал.:
✰ Free and open-source graphics device driver - Wikipedia ✰
Заголовок документа перевод.:
✰ Бесплатный драйвер графического устройства с открытым исходным кодом — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Free_and_open-source_graphics_device_driver ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/3e/e0/3e691a5df50f1fdab294efb1445324e0.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/3e/e0/3e691a5df50f1fdab294efb1445324e0__translat.html ✰
Дата и время сохранения документа:
✰ 21.06.2024 16:37:53 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 11 May 2024, at 02:18 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Бесплатный драйвер графического устройства с открытым исходным кодом — Википедия Jump to content

Бесплатный драйвер графического устройства с открытым исходным кодом

Из Википедии, бесплатной энциклопедии
Блок-схема работы с Tux, пингвином Linux
Данные и инструкции передаются в графический процессор для обработки. Результаты рендеринга сохраняются во фреймбуфере , содержимое которого сканируется контроллером дисплея и отправляется на экран.

Бесплатный драйвер графического устройства с открытым исходным кодом представляет собой программный стек , который управляет аппаратным обеспечением компьютерной графики и поддерживает (API) рендеринга графики интерфейсы прикладного программирования и выпускается под лицензией на бесплатное программное обеспечение с открытым исходным кодом . графических Драйверы устройств пишутся для конкретного оборудования, чтобы работать в определенном ядре операционной системы и поддерживать ряд API-интерфейсов, используемых приложениями для доступа к графическому оборудованию. Они также могут управлять выводом на дисплей, если драйвер дисплея является частью графического оборудования. Большинство бесплатных драйверов графических устройств с открытым исходным кодом разработаны проектом Mesa . Драйвер состоит из компилятора , API рендеринга и программного обеспечения, которое управляет доступом к графическому оборудованию.

Драйверы без свободно (и легально) доступного исходного кода широко известны как бинарные драйверы . Двоичные драйверы, используемые в операционных системах, которые подвержены постоянному развитию и изменению (например, Linux), создают проблемы для конечных пользователей и сопровождающих пакетов . Эти проблемы, влияющие на стабильность, безопасность и производительность системы, являются основной причиной независимой разработки бесплатных драйверов с открытым исходным кодом. Когда техническая документация отсутствует, понимание основного оборудования часто достигается путем реверс-инжиниринга в «чистой комнате» . Исходя из этого понимания, драйверы устройств могут быть написаны и официально опубликованы под любой лицензией на программное обеспечение .

В редких случаях исходный код драйвера производителя доступен в Интернете без свободной лицензии . Это означает, что код можно изучать и изменять для личного использования, но измененный (и обычно исходный) исходный код не может свободно распространяться. Решения ошибок в драйвере не могут быть легко распространены в виде модифицированных версий драйвера. Поэтому полезность таких драйверов значительно снижается по сравнению с бесплатными драйверами с открытым исходным кодом.

Проблемы с проприетарными драйверами [ править ]

Взгляд разработчика программного обеспечения [ править ]

Блок-схема;  см. подпись
Иллюстрация графического стека 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]

Взгляд разработчика оборудования [ править ]

Еще одна блок-схема;  см. подпись
В будущем libGL-fglrx-glx может использовать libDRM драйвера с открытым исходным кодом Radeon вместо проприетарного двоичного объекта ; большая часть инвестиций приходится на драйвер пользовательского пространства.

Когда такие приложения, как игровой движок 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.

Архитектура программного обеспечения [ править ]

Иллюстрация различий между моделями Gallium3D и инфраструктуры прямого рендеринга
Mesa ( DRI ) и Gallium3D имеют разные модели драйверов, но имеют общий бесплатный код с открытым исходным кодом.
Матрица примера драйвера
Пример матрицы модели драйвера Gallium3D. С появлением трекера Gallium3D и интерфейсов WinSys требуется 18 модулей вместо 36. Каждый модуль WinSys может работать с каждым модулем драйвера устройства Gallium3D и каждым модулем State Tracker.

Бесплатные драйверы с открытым исходным кодом в основном разрабатываются для Linux разработчиками ядра Linux, сторонними энтузиастами программирования и сотрудниками таких компаний, как Advanced Micro Devices . Каждый драйвер состоит из пяти частей:

  1. Компонент ядра Linux DRM
  2. компонента ядра Linux Драйвер KMS ( драйвер контроллера дисплея )
  3. Компонент пользовательского пространства libDRM (библиотека-оболочка для системных вызовов DRM, которая должна использоваться только Mesa 3D)
  4. Компонент 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.
  5. Device Dependent X (DDX), еще один драйвер 2D-графического устройства для сервера X.Org.

DRM зависит от ядра . Драйвер VESA обычно доступен для любой операционной системы. Драйвер VESA поддерживает большинство видеокарт без ускорения и с разрешениями дисплея, ограниченными набором, запрограммированным производителем в Video BIOS. [15]

История [ править ]

Графический стек Linux эволюционировал, отклоняясь от основного протокола X Window System .

Бесплатные драйверы с открытым исходным кодом [ править ]

ATI и AMD [ править ]

Радеон [ править ]

Диаграмма
Драйверы устройств Linux для оборудования AMD в августе 2016 г.

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 :

Доступна актуальная матрица функций, [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.

Нвидиа [ править ]

Скриншот травы, растущей из воды
Снимок экрана REnouveau, программы, которая собирает данные для большей части работ Нуво по обратному проектированию.

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 содержат ее в своих репозиториях. от 4 октября 2013 г. Бета- драйвер Nvidia GeForce 331.13 поддерживает интерфейс 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] Nouveau 26 марта 2012 г. компонент DRM был помечен как стабильный и переведен из промежуточной области ядра 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. -4-64 , а также для своих более поздних графических процессоров AXE-1-16M и BXS [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 .

Бродком [ править ]

Схема программного обеспечения
Драйвер Mesa для VideoCore4, VC4, был написан с нуля Эриком Анхолтом из Broadcom. [89]

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 .

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

См. подпись
Собранная Project VGA видеокарта
Еще одна печатная плата
Прототип открытого графического проекта

Проект 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 , эмулятор набора команд, компилятор C-C++ на основе LLVM , библиотеки программного обеспечения и тесты, а также исследует параллельное программное и аппаратное обеспечение. Terasic DE2-115 Он может работать на программируемой пользователем плате вентильной матрицы . [108] [109]

Если в проекте используются FPGA, он обычно имеет частично (или полностью) инструментальную цепочку с закрытым исходным кодом. Однако в настоящее время существует несколько наборов инструментов с открытым исходным кодом для FPGA на основе Lattice (особенно для плат iCE40 и ECP5), которые используют Project IceStorm, [110] и Треллис, [111] соответственно. Также продолжается более масштабная работа по созданию «GCC FPGA» под названием SymbiFlow. [112] который включает в себя вышеупомянутые наборы инструментов FPGA, а также набор инструментов с открытым исходным кодом ранней стадии для FPGA на базе Xilinx.

См. также [ править ]

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

  1. ^ Тео де Раадт (3 декабря 2006 г.). «Открытая документация по оборудованию» . Слайды презентации с OpenCON 2006 . Проверено 1 февраля 2007 г.
  2. ^ «Что означает «двоичный» в драйвере устройства?» . Проверено 14 ноября 2017 г.
  3. ^ «3.9: «Капля!» » . OpenBSD . Проверено 12 февраля 2007 г.
  4. ^ «Linux — как Rapid7 Advisory R7-0025 влияет на драйвер NVIDIA Unix?» .
  5. ^ "a/lt-двоичный" .
  6. ^ Кроа-Хартман, Грег. «Мифы, ложь и правда о ядре Linux» . Журнал обезьян ядра Linux.
  7. ^ Питер Гутманн (26 декабря 2006 г.). «Анализ затрат на защиту содержимого Windows Vista» . Проверено 28 января 2007 г. {{cite journal}}: Для цитирования журнала требуется |journal= ( помощь )
  8. ^ Linux Weekly News, 14 августа 2006 г.: X.org, дистрибьюторы и проприетарные модули.
  9. ^ Грег Кроа-Хартман (2006). «Мифы, ложь и правда о ядре Linux» . Симпозиум по Linux .
  10. ^ «Интерфейс драйвера ядра Linux» . Архивировано из оригинала 4 ноября 2013 г. Проверено 4 марта 2014 г.
  11. ^ «Самсунг Галактика Бэкдор» . 04.02.2014.
  12. ^ «Доля Android приближается к 80% в мировых поставках смартфонов, а доля iOS и BlackBerry падает, согласно данным IDC» . 7 августа 2013 г.
  13. ^ «Атомная структура отображения» .
  14. ^ «Отслеживание состояния Direct3D 9» . 16 июля 2013 года. Архивировано из оригинала 20 июля 2013 года . Проверено 15 ноября 2017 г.
  15. ^ «Индекс /doc/Documentation/fb/» . Проверено 15 ноября 2017 г.
  16. ^ Подробности о пакете прошивки Debian-linux-nonfree в стабильной версии Debian.org.
  17. ^ «Функция Радеон» . Проверено 15 ноября 2017 г.
  18. ^ Перейти обратно: а б «начальная поддержка VCE в ядре Linux и драйвере Mesa» . 4 февраля 2014 г.
  19. ^ "drm-next-3.15 18 февраля" . 18 февраля 2014 г.
  20. ^ "drm-next-3.15 4 марта" . 4 марта 2014 г.
  21. ^ «Руководства разработчиков AMD» . Архивировано из оригинала 16 июля 2013 г.
  22. ^ «Документация предоставлена ​​AMD» .
  23. ^ «Список документации AMD 3D» . Архивировано из оригинала 7 октября 2013 г.
  24. ^ «AMD откроет спецификации графики» . LWN.net . 05 сентября 2007 г. Проверено 15 июля 2014 г.
  25. ^ «AMD: характеристики графического процессора без соглашений о неразглашении!» . 10 сентября 2007 г. Проверено 15 июля 2014 г.
  26. ^ Дэвид Эйрли (13 сентября 2007 г.). «AMD передал мне характеристики на компакт-диске» . Архивировано из оригинала 22 октября 2012 г. Проверено 15 июля 2014 г.
  27. ^ «AMD изучает новую стратегию драйверов для Linux» . 22 марта 2014 г. Проверено 23 марта 2014 г.
  28. ^ «Первоначальная версия драйвера AMDGPU» . 20 апреля 2015 г. Проверено 26 апреля 2016 г.
  29. ^ «AMD продвигается вперед с унифицированной стратегией драйверов Linux и новым драйвером ядра» . Фороникс .
  30. ^ «Документация драйвера AMDGPU» . Freedesktop.org .
  31. ^ «AMD представляет начальную поддержку драйверов AMDGPU для графических процессоров GCN 1.0 / Southern Islands» . Фороникс .
  32. ^ «libdrm 2.4.63» . 14 августа 2015 г.
  33. ^ «Поддержка EGL на 32-битных платформах» . 04.10.2013 . Проверено 15 июля 2014 г.
  34. ^ «Список файлов lib32-nvidia-utils 340.24-1» . 15 июля 2014 г.
  35. ^ «Страница драйвера X.org nv» . 20 мая 2013 г.
  36. ^ «Патч Дирка Хондела» . 18 ноября 1998 г. Архивировано из оригинала 1 февраля 2014 г. Проверено 15 июля 2014 г. ... в отличие от такого запутанного кода. Мы не считаем это свободным программным обеспечением по нашим стандартам.
  37. ^ «Нуво – Сообщество и прошлые, текущие и будущие события» (PDF) . 13 сентября 2011 г. Проверено 15 июля 2014 г.
  38. ^ Перейти обратно: а б Дэвид М. Эйрли (19 июля 2006 г.). «Графические драйверы с открытым исходным кодом — они не убивают котят» (PDF) . Материалы первого тома симпозиума по Linux . Оттава , Онтарио, Канада. Архивировано из оригинала (PDF) 8 февраля 2007 г. Проверено 28 января 2007 г.
  39. ^ «Nvidia отказывается от «NV» » . Фороникс . 26 марта 2010 г.
  40. ^ «Ответ NVIDIA на недавнюю работу в стиле модерн» . Фороникс . 14 декабря 2009 г.
  41. ^ «Nvidia предлагает опубликовать общедоступную документацию по некоторым аспектам своих графических процессоров» . 23 сентября 2013 г. Проверено 24 сентября 2013 г.
  42. ^ «Нуво: ускоренный драйвер с открытым исходным кодом для карт nVidia» . Архивировано из оригинала 23 июля 2014 г. Проверено 10 августа 2006 г.
  43. ^ «Водитель-нувоист заканчивает постановку» . LWN.net . 23 марта 2012 г.
  44. ^ «Инженерные имена для Nvidia» .
  45. ^ «drm/nouveau: начальная поддержка GK20A (Tegra K1)» . 31 января 2014 г.
  46. ^ «Codethink запускает NVIDIA Jetson TK1 под управлением Linux 3.15, Wayland» . Фороникс . 12 июня 2014 г.
  47. ^ «Матрица функций драйверов Nouveau» . Проверено 16 ноября 2017 г.
  48. ^ «Тегра-ре» . Гитхаб . Проверено 16 ноября 2017 г.
  49. ^ «Архив Linux для Tegra» . 30 января 2014 года . Проверено 16 ноября 2017 г.
  50. ^ Мэйо, Джон (20 апреля 2012 г.). «[RFC 0/4] Добавить поддержку NVIDIA Tegra DRM» . dri-devel (список рассылки) . Проверено 21 августа 2012 г.
  51. ^ Ларабель, Майкл (11 апреля 2012 г.). «Советы по драйверу DRM/KMS для NVIDIA Tegra 2» . Фороникс Медиа . Проверено 21 августа 2012 г.
  52. ^ «GTC 2013: Дорожная карта NVIDIA Tegra (6 из 11)» . YouTube. Архивировано из оригинала 21 декабря 2021 г. Проверено 10 июля 2013 г.
  53. ^ «NVIDIA выпускает модули ядра графического процессора с открытым исходным кодом» . 19 мая 2022 г. Проверено 7 июня 2022 г.
  54. ^ Обзор производителей видеокарт и того, насколько хорошо они работают с Ubuntu Ubuntu Gamer, 10 января 2011 г. (статья Люка Бенстеда); ( копия статьи )
  55. ^ «Большая производительность достигается за счет Intel Linux SNB» . Фороникс . 22 марта 2011 г. Проверено 23 марта 2011 г.
  56. ^ «Производительность Intel Sandy Bridge снова выросла» . Фороникс . 31 марта 2011 г. Проверено 31 марта 2011 г.
  57. ^ «Драйвер Intel SNB Linux может превосходить драйвер Windows» . Фороникс . 23 мая 2011 г. Проверено 23 мая 2011 г.
  58. ^ «Исторический взгляд на производительность графики Intel Ironlake» . Фороникс . 25 мая 2011 г. Проверено 25 мая 2011 г.
  59. ^ «drm/i915: использовать eLLC/LLC по умолчанию, если доступно» .
  60. ^ «drm/i915: использовать кэширование сквозной записи для плоскости отображения на диафрагме» .
  61. ^ «У Intel есть 20–30 штатных разработчиков графики для Linux» . 2 февраля 2013 г.
  62. ^ «ОпенХром» . Проверено 16 ноября 2017 г.
  63. ^ фороникс (6 февраля 2012 г.). «Phoronix.com — FOSDEM 2012 — ARM Mali с открытым исходным кодом» . Архивировано из оригинала 21 декабря 2021 г. – на YouTube.
  64. ^ Phoronix, 21 января 2012 г.: Драйвер графического процессора Mali с открытым исходным кодом, реверс-инжиниринг
  65. ^ «Тайм-демо Quake 3 Arena на вершине лимского водителя!» . Архивировано из оригинала 9 февраля 2013 г.
  66. ^ «Драйвер Lima DRM [LWN.net]» . lwn.net .
  67. ^ drm/lima: драйвер для графических процессоров ARM Mali4xx}
  68. ^ drm/panfrost: добавить исходный драйвер panfrost.
  69. ^ «drm: добавить поддержку контроллера дисплея ARM HDLCD» . Список рассылки ядра Linux . 11 декабря 2015 г.
  70. ^ «Первоначальная поддержка контроллера дисплея ARM Mali» . Список рассылки ядра Linux . 01.04.2016.
  71. ^ Фонд свободного программного обеспечения, 25 апреля 2005 г.: Высокоприоритетные проекты свободного программного обеспечения.
  72. ^ «Imagination Tech публикует драйвер PowerVR Vulkan с открытым исходным кодом для Mesa» . www.phoronix.com . Проверено 19 апреля 2022 г.
  73. ^ "laanwj/etna_viv" . Гитхаб .
  74. ^ «etnaviv: драйвер Gallium для графических процессоров Vivante» .
  75. ^ Майкл Ларабель (14 апреля 2012 г.). «Графический драйвер с открытым исходным кодом для Snapdragon» . Фороникс . Проверено 15 апреля 2012 г.
  76. ^ Соулскилл (14 апреля 2012 г.). «Опубликован драйвер графического процессора Qualcomm с открытым исходным кодом» . Слэшдот . Проверено 15 апреля 2012 г.
  77. ^ Роб Кларк (14 апреля 2012 г.). «Борьба с бинарными объектами!» . Линаро . Проверено 15 апреля 2012 г.
  78. ^ Фридрено, 15 апреля 2012 г. Архивировано 24 октября 2012 г. в Wayback Machine.
  79. ^ «Mesa/Gallium3D получает свой первый драйвер графического процессора ARM SoC — Phoronix» .
  80. ^ «Mesa (master): r600g: добавьте идентификаторы PCI Richland APU» . 15 марта 2013 г.
  81. ^ Роб Кларк (29 июля 2012 г.). «Обновление freedreno: сначала рендерится ассемблер шейдеров!» . Проверено 16 августа 2012 г.
  82. ^ Роб Кларк (5 августа 2012 г.). «текстурированный куб (полноэкранный!)» . Проверено 16 августа 2012 г.
  83. ^ Роб Кларк (15 августа 2012 г.). «Открытый исходный код, лолскат!» . Проверено 16 августа 2012 г.
  84. ^ «Открыть драйверы графического процессора ARM – Freedreno» . ФОСДЕМ . 2 февраля 2013 г. Проверено 15 июля 2014 г.
  85. ^ «Слить драйвер MSM от Роба Кларка» . ядро.орг . 28 августа 2013 г. Проверено 4 июня 2014 г.
  86. ^ «xf86-video-freedreno 1.2.0» . сайт freedesktop.org . 14 июля 2014 г.
  87. ^ «Добавить поддержку адрено 430» . Проверено 15 ноября 2017 г.
  88. ^ «Индекс Меса-Меса» . Проверено 15 ноября 2017 г.
  89. ^ Анхольт, Эрик (17 июня 2014 г.). «Новая работа в Broadcom» . Архивировано из оригинала 7 апреля 2015 г.
  90. ^ «Phoronix на графическом процессоре Raspberry Pi» .
  91. ^ «Пользовательская среда ARM с открытым исходным кодом — Raspberry Pi» . 24 октября 2012 г.
  92. ^ «Пользовательская среда ARM с открытым исходным кодом — Raspberry Pi» . 24 октября 2012 года. Архивировано из оригинала 30 октября 2012 года . Проверено 1 ноября 2012 г.
  93. ^ "Германэрмитаж/видеокорив" . Гитхаб .
  94. ^ «Raspberry Pi отмечает свой второй день рождения, планируя выпуск графического драйвера с открытым исходным кодом» . 28 февраля 2014 г.
  95. ^ Аптон, Эбен (28 февраля 2014 г.). «Подарок на день рождения от Broadcom — Raspberry Pi» . Фонд Raspberry Pi . Проверено 8 июля 2019 г.
  96. ^ «vc4: первоначальный импорт скелетного драйвера» . Библиотека 3D-графики Mesa. 09.08.2014.
  97. ^ Майкл Ларабель (26 июля 2008 г.). «ВИА публикует три руководства по программированию» . Фороникс . Проверено 4 августа 2008 г.
  98. ^ Майкл Ларабель (21 ноября 2009 г.). «Список дел для Linux от VIA… Может быть, с нетерпением ждем 2011 года?» . Фороникс . Проверено 30 декабря 2009 г.
  99. Открытый графический драйвер VIA для Linux защитён Phoronix , 6 января 2011 г. (статья Майкла Ларабель )
  100. ^ «Либдло» . Проверено 16 ноября 2017 г.
  101. ^ «DisplayLink выпускает исходный код Linux для своих графических процессоров USB» (пресс-релиз). Дисплейссылка. 15 мая 2009 г. Проверено 15 мая 2009 г.
  102. ^ AMD нанимает еще одного разработчика драйверов с открытым исходным кодом Phoronix , 11 декабря 2010 г. (статья Майкла Ларабель )
  103. Это неделя тестирования графики Fedora Phoronix , 22 февраля 2011 г. (статья Майкла Ларабель )
  104. ^ «Дом Project VGA, малобюджетной видеокарты с открытым исходным кодом, совместимой с VGA» . 090503 wacco.mveas.com
  105. ^ «Фонд Linux: OGD1» . Откройте графический проект . 23 сентября 2010 г. Проверено 4 ноября 2011 г.
  106. ^ Бурдодук, Себастьян (июнь 2010 г.). «Архитектура SoC, ориентированная на производительность, для синтеза видео» (PDF) . Архивировано из оригинала (PDF) 27 июля 2011 г. Проверено 5 ноября 2010 г.
  107. ^ «Ньюзи — экспериментальный GPGPU-процессор» . Гитхаб . Июнь 2021.
  108. ^ «Тестовая среда SOC» . Гитхаб .
  109. ^ «Работа на плате Terasic DE2-115 FPGA» . Гитхаб .
  110. ^ «Домашняя страница проекта IceStorm» . 21 января 2022 г.
  111. ^ «Репозиторий проекта Trellis» . Гитхаб . 30 мая 2021 г.
  112. ^ «Домашняя страница SymbiFlow» .

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 3E691A5DF50F1FDAB294EFB1445324E0__1715383080
URL1:https://en.wikipedia.org/wiki/Free_and_open-source_graphics_device_driver
Заголовок, (Title) документа по адресу, URL1:
Free and open-source graphics device driver - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)