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

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

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

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

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

СОДЕРЖАНИЕ

  • 1 Проблемы с проприетарными драйверами
    • 1.1 Взгляд разработчика программного обеспечения
    • 1.2 Взгляд разработчика оборудования
  • 2 Сравнение производительности
  • 3 Архитектура программного обеспечения
    • 3.1 История
  • 4 Бесплатные драйверы с открытым исходным кодом
    • 4.1 ATI и AMD
      • 4.1.1 Radeon
      • 4.1.2 AMDGPU
    • 4.2 Nvidia
    • 4.3 Intel
    • 4.4 Matrox
    • 4.5 S3 Графика
    • 4.6 Arm Holdings
    • 4.7 Технологии воображения
    • 4.8 Виванте
    • 4.9 Qualcomm
    • 4.10 Broadcom
    • 4.11 Другие поставщики
  • 5 открытых аппаратных проектов
  • 6 См. Также
  • 7 ссылки
  • 8 Внешние ссылки

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

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

Блок-схема; см. подпись Иллюстрация графического стека Linux

Есть возражения против бинарных драйверов, основанные на соображениях авторского права, безопасности, надежности и разработки. В рамках более широкой кампании против блоб, OpenBSD ведущий разработчик Тео де Raadt сказал, что с двоичным драйвером нет «никакого способа, чтобы исправить это, когда он ломается (и он сломается)»; когда производитель объявляет, что продукт, использующий бинарные драйверы, с истекшим сроком службы, он фактически «сломается навсегда». В проекте также заявлено, что бинарные драйверы «скрывают ошибки и обходные пути для ошибок», наблюдение, которое было отчасти подтверждено недостатками, обнаруженными в бинарных драйверах (включая уязвимую ошибку в 3D-драйверах Nvidia, обнаруженную Rapid7 в октябре 2006 года). Предполагается, что ошибка существует с 2004 года; Nvidia отрицала это, утверждая, что о проблеме им сообщили только в июле 2006 года, а ошибка 2004 года была ошибкой в ​​X.Org (а не в драйвере Nvidia).

Двоичные драйверы часто не работают с текущими версиями программного обеспечения с открытым исходным кодом и почти никогда не поддерживают моментальные снимки разработки программного обеспечения с открытым исходным кодом; Обычно разработчик не может напрямую использовать проприетарные драйверы Nvidia или ATI с моментальным снимком разработки X-сервера или моментальным снимком разработки ядра Linux. Такие функции, как настройка режима ядра, не могут быть добавлены в бинарные драйверы кем-либо, кроме поставщиков, что предотвращает их включение, если поставщик не имеет достаточных возможностей или заинтересованности.

В сообществе разработчиков ядра Linux Линус Торвальдс сделал резкие заявления по вопросу о модулях, предназначенных только для двоичных файлов: «Я отказываюсь даже думать о том, чтобы связать свои руки с каким-либо модулем, предназначенным только для двоичных файлов... Я хочу, чтобы люди знали об этом, когда они используют двоичные модули. -только модули, это их проблема ». Другой разработчик ядра, Грег Кроа-Хартман, сказал, что модуль ядра, состоящий только из двоичных файлов, не соответствует лицензии ядра ( Стандартная общественная лицензия GNU ); он «просто нарушает GPL из-за забавных вещей, таких как производные работы, ссылки и другие вещи». Писатель и ученый-компьютерщик Питер Гутманн выразил обеспокоенность тем, что схема управления цифровыми правами в операционной системе Microsoft Windows Vista может ограничить доступность документации, необходимой для написания открытых драйверов, поскольку она «требует, чтобы рабочие детали устройства были конфиденциальными».

В случае бинарных драйверов есть возражения из-за философии бесплатного программного обеспечения, качества программного обеспечения и соображений безопасности. В 2006 году Грег Кроа-Хартман пришел к выводу, что:

«Модули ядра Linux с закрытым исходным кодом являются незаконными. Вот и все, это очень просто. Я имел несчастье разговаривать на эту тему со многими разными юристами в области интеллектуальной собственности за эти годы, и все, с кем я разговаривал, все согласны что сегодня никто не может создать модуль ядра Linux с закрытым исходным кодом. Это просто нарушает GPL из-за забавных вещей, таких как производные работы и ссылки ».

Ядро Linux никогда не поддерживало стабильный бинарный интерфейс приложения внутри ядра. Также есть опасения, что проприетарные драйверы могут содержать бэкдоры, подобные тому, который можно найти в драйверах модема Samsung Galaxy -series.

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

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

Когда приложения, такие как движок трехмерных игр или программное обеспечение для трехмерной компьютерной графики, передают вычисления от центрального процессора к графическому процессору, они обычно используют специальный 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, а ядро ​​Linux преобладает в смартфонах. У разработчиков оборудования есть стимул поставлять драйверы Linux для своего оборудования, но из-за конкуренции нет стимула делать эти драйверы бесплатными и с открытым исходным кодом. Дополнительные проблемы - это специфичные для Android дополнения к ядру Linux, которые не были приняты в основной линии, такие как Atomic Display Framework (ADF). ADF - это функция ядер AOSP 3.10, которая обеспечивает структуру, ориентированную на dma -buf, между HAL hwcomposer Android и драйвером ядра. ADF существенно пересекается со структурой DRM - KMS. ADF не был принят в основную линию, но другой набор решений, решающих те же проблемы (известный как настройка атомарного режима ), находится в стадии разработки. Такие проекты, как libhybris, используют драйверы устройств Android для работы на платформах Linux, отличных от Android.

Сравнение производительности

Три шестерни: красная, синяя и зеленая Glxgears не очень подходит для тестирования.

Phoronix, который сравнивает бесплатные драйверы, является источником для тестирования в реальных условиях:

  • 19 марта 2011 г.
  • 31 марта 2013 г.
  • Сравнение FOSS и проприетарных драйверов от 29 апреля 2013 г.
  • 27 октября 2013 г. Сравнение проприетарных драйверов для Windows 8.1 и Linux
  • Сравнение драйверов FOSS в Linux от 25 января 2014 г.
  • Сравнение проприетарных драйверов в Linux от 27 января 2014 г.
  • Сравнение Ubuntu от 19 марта 2014 года с бесплатным драйвером графического устройства с открытым исходным кодом, распространяемым как часть Mesa 3D, который превосходит Mac OS X 10.9.2 при воспроизведении Xonotic на основе OpenGL на MacBook Air 2013 года.
  • Сравнение в январе 2017 года показало разницу в мощности между драйверами Mesa Nouveau и NVidia и Kepler и Maxwell. Повторная синхронизация необходима Максвеллу в «Модерне», чтобы повысить уровень до Кеплера. Отрыв от Mesa составляет от 30 до 50% в базовой эффективности драйвера по сравнению с Nvidia во всех чипах.
  • Сравнение, проведенное в феврале 2017 года, показало, что Mesa 17.1dev был равен или лучше драйвера AMD GPU 16.60 в OpenGL и на 20-30 процентов ниже в Vulkan.
  • Сравнение, проведенное в марте 2017 года, показало улучшения в Mesa для RadeonSI между версиями 11.1 и 17.1.
  • Сравнение Windows 10 Radeon Software и Ubuntu 17.04 + Linux 4.12 + Mesa 17.2-dev в июне 2017 года -gt; Результат mesa radeonsi на том же уровне
  • Сравнение производительности RadeonSI / RADV Mesa 17.3 + AMDGPU DC за октябрь 2017 г. и проприетарной NVIDIA 387.12 Linux Gaming Performance -gt; Результат: Nvidia уверенно лидирует
  • 2018-02: Сравнение Mesa 12–18 с AMD R580 и R9 Fury для тестов OpenGL и Vulkan
  • 2018-06: Сравнение Mesa 18.2 и Nvidia Driver 396 с картами Nvidia GeForce 680 и выше
  • 2018-07: Сравнение Mesa RadeonSI 18.0, 18.1, 18.2 и RadV с картами Radeon RX
  • 2018-10: Сравнение AMD Closed Driver 18.40, AMDVLK и Mesa RadeonSI 18.2, 18.3
  • 2018-11: Сравнение 25 карт AMD и Nvidia с Mesa 19.0dev и драйвером NVIDIA 415
  • 2019-01: Сравнение Linux 5.0 + Mesa 19.0dev + AMD RX Cards и NVIDIA GeForce Driver 415 с Nvidia Cards
  • 2019-01: Сравнение Mesa 18.2, 18.3, 19.0dev RadeonSI / RADV с картами AMD RX
  • 2019-05: Сравнение Mesa 19.2 AMD Polaris, Vega с Nvidia
  • 2019-12: Сравнение Mesa 18.2.8 до 20.0dev для RadeonSI с Radeon RX 580 и RX Vega 64

Журналы по видеоиграм редко публикуют отчеты о тестировании производительности Linux. Тесты на Phoronix ограничены по объему, в первую очередь это тестирование игр, доступных в Linux и поддерживающих автоматическое тестирование.

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

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

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

  1. DRM компонента ядра Linux
  2. Драйвер KMS компонента ядра Linux ( драйвер контроллера дисплея )
  3. Компонент пользовательского пространства libDRM (библиотека-оболочка для системных вызовов DRM, которая должна использоваться только Mesa 3D)
  4. Меса 3D пространство пользователя компоненты. Этот компонент зависит от оборудования; он выполняется на ЦП и транслирует команды OpenGL, например, в машинный код для графического процессора. Поскольку драйвер устройства разделен, возможна сортировка. Mesa 3D - единственная бесплатная реализация OpenGL, OpenGL ES, OpenVG, GLX, EGL и OpenCL с открытым исходным кодом. В июле 2014 года большинство компонентов соответствовали спецификациям Gallium3D. Полнофункциональный трекер состояния для Direct3D версии 9 написан на C, а неподдерживаемый трекер для Direct3D версий 10 и 11 написан на C ++. Wine имеет Direct3D версии 9. Другой компонент Wine переводит вызовы Direct3D в вызовы OpenGL, работая с OpenGL.
  5. Device Dependent X (DDX), еще один драйвер устройства 2D-графики для X.Org Server

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

История

Стек графики Linux эволюционировал в обход протокола ядра X Window System.

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

ATI и AMD

Radeon

См. Также: Список графических процессоров AMD и Список микропроцессоров 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). Они по-прежнему должны загружать в графический процессор проприетарный микрокод, чтобы обеспечить аппаратное ускорение.

Код Radeon 3D разделен на шесть драйверов в соответствии с технологией графического процессора: драйверы radeon, r200 и r300 classic и драйверы r300g, r600g и radeonsi Gallium3D :

Доступна обновленная матрица функций, а также есть поддержка Video Coding Engine и Unified Video Decoder. Бесплатные драйверы графических устройств Radeon с открытым исходным кодом не подвергаются обратному проектированию, а основаны на документации, выпущенной AMD без требования подписания соглашения о неразглашении (NDA). Документация начала постепенно выпускаться в 2007 году. Это контрастирует с основным конкурентом AMD в области графики, Nvidia, которая имеет проприетарный драйвер, аналогичный AMD Catalyst, но не поддерживает инициативы в области бесплатной графики.

Помимо предоставления необходимой документации, сотрудники AMD вносят код для поддержки своего оборудования и функций.

Все компоненты драйвера графического устройства Radeon разрабатываются основными участниками и заинтересованными сторонами по всему миру. В 2011 году r300g в некоторых случаях превосходил Catalyst.

AMDGPU

Основная статья: AMDGPU

На конференции разработчиков игр 2014 года AMD объявила, что они изучают возможность изменения стратегии, чтобы заново основать пользовательскую часть Catalyst на бесплатном модуле ядра DRM с открытым исходным кодом, а не на собственном блобе ядра.

О выпуске нового модуля ядра AMDGPU и стека было объявлено в списке рассылки Dri-devel в апреле 2015 года. Хотя AMDGPU официально поддерживает только видеокарты GCN 1.2 и более поздних версий, экспериментальная поддержка видеокарт GCN 1.0 и 1.1 (которые поддерживаются только официально) драйвером Radeon) можно включить с помощью параметра ядра. Отдельная библиотека libdrm, libdrm-amdgpu, добавлена ​​с версии libdrm 2.4.63.

Код radeonsi 3D, упомянутый в предыдущем абзаце Radeon, также используется с amdgpu; у 3D-драйвера есть серверные части как для Radeon, так и для amdgpu.

Nvidia

См. Также: Список графических процессоров Nvidia и nouveau Скриншот травы, растущей из воды Снимок экрана REnouveau, программы, которая собирает данные для большей части работ по обратному проектированию Nouveau.

Nvidia проприетарный драйвер «s, драйвер Nvidia GeForce для GeForce, доступна для Windows XP x86 - x86-64 и позже, Linux x86-x86-64- ARMv7-A, OS X 10.5 и более поздних версиях Solaris x86-x86-64 и FreeBSD x86 / x86-64. Актуальную версию можно загрузить из Интернета, и некоторые дистрибутивы Linux содержат ее в своих репозиториях. Бета-версия драйвера Nvidia GeForce 331.13 от 4 октября 2013 г. поддерживает интерфейс EGL, обеспечивая поддержку Wayland в сочетании с этим драйвером.

Бесплатный драйвер Nvidia с открытым исходным кодом называется nv. Он ограничен (поддерживает только 2D-ускорение), и Мэтью Гарретт, Дирк Хондел и другие назвали его исходный код запутанным. В марте 2010 года Nvidia решила отказаться от NV, не добавляя поддержку графических процессоров Fermi или более поздних версий и DisplayPort.

В декабре 2009 года Nvidia объявила, что не будет поддерживать инициативы по бесплатной графике. 23 сентября 2013 года компания объявила, что выпустит некоторую документацию по своим графическим процессорам.

Модерн почти полностью основан на информации, полученной с помощью обратного инжиниринга. Этот проект направлен на создание 3D-ускорения для X.Org/ Wayland с использованием Gallium3D. 26 марта 2012 г. компонент DRM Nouveau был отмечен как стабильный и переведен из промежуточной области ядра Linux. Nouveau поддерживает графические процессоры на базе Tesla (и ранее), Fermi, Kepler и Maxwell. 31 января 2014 года сотрудник Nvidia Александр Курбот выпустил обширный набор исправлений, который добавляет начальную поддержку GK20A ( Tegra K1 ) в Nouveau. В июне 2014 года, как сообщается, Codethink побежал Wayland - Weston наборщик с Linux ядром 3.15, используя EGL и «100% стеку с открытым исходным кодом графического драйвера» на Tegra K1. Доступна матрица характеристик. В июле 2014 года Nouveau не смог превзойти драйвер Nvidia GeForce из-за отсутствия поддержки повторной синхронизации. Tegra-re - это проект, направленный на обратное проектирование графических процессоров nVidia на базе VLIW серии Tegra, предшествующих Tegra K1.

Nvidia распространяет проприетарные драйверы устройств для Tegra через OEM-производителей и как часть своего комплекта разработки Linux for Tegra (ранее L4T). Nvidia и ее партнер Avionic Design работали над отправкой Grate (бесплатных драйверов с открытым исходным кодом для Tegra) в апстрим основного ядра Linux в апреле 2012 года. Соучредитель и генеральный директор компании изложил план развития процессоров Tegra с Ubuntu Unity на Конференция по технологиям графических процессоров 2013 года.

Драйвер унифицированной памяти Nvidia (nvidia-uvm.ko), который реализует управление памятью для графических процессоров Pascal и Volta в Linux, лицензирован MIT. Исходный код доступен для загрузки драйверов Nvidia Linux в системах, поддерживающих nvidia-uvm.ko.

Intel

См. Также: Список графических процессоров Intel, Intel GMA § Linux и Intel HD и Iris Graphics

Intel имеет опыт производства (или ввода в эксплуатацию) драйверов с открытым исходным кодом для своих графических чипов, за исключением чипов на базе PowerVR. Их драйвер 2D X.Org называется xf86-video-intel. Драйвер настройки режима ядра в ядре Linux не использует BIOS видео для переключения режимов видео ; поскольку некоторые BIOS имеют ограниченный набор режимов, это обеспечивает более надежный доступ к тем, которые поддерживаются видеокартами Intel.

В 2011 году компания работала над оптимизацией своих бесплатных драйверов Linux для достижения производительности, приближающейся к их аналогам для Windows, особенно на Sandy Bridge и более новом оборудовании, где оптимизация производительности позволила драйверу Intel превзойти их проприетарные драйверы Windows в определенных задачах. также приносят пользу пользователям старого оборудования.

Поддержка Intel LLC (Last Level Cache, L4-Cache, Crystalwell и Iris Pro) была добавлена ​​в ядро ​​Linux 3.12, и у компании есть от 20 до 30 постоянных разработчиков графики для Linux.

Matrox

Matrox разрабатывает и производит Matrox Mystique, Parhelia, G200, G400 и G550. Хотя компания предоставляет бесплатные драйверы с открытым исходным кодом для своих наборов микросхем, которые старше G550; Чипсеты новее, чем G550, поддерживаются драйвером с закрытым исходным кодом.

S3 Графика

S3 Graphics разрабатывает S3 Trio, ViRGE, Savage и Chrome, поддерживаемые OpenChrome.

Arm Holdings

Arm Holdings - это полупроводниковая компания без фабрик, которая лицензирует полупроводниковые ядра интеллектуальной собственности. Хотя они известны лицензированием набора инструкций ARM и процессоров на его основе, они также разрабатывают и лицензируют серию графических процессоров Mali. 21 января 2012 года Phoronix сообщил, что Люк Верхаген предпринял попытку реверс-инжиниринга графических процессоров Arm Holdings Mali (в частности, версий Mali-200 и Mali-400). Проект обратного инжиниринга, известный как Lima, был представлен на FOSDEM 4 февраля 2012 года. 2 февраля 2013 года Verhaegen продемонстрировал Quake III Arena в демо-режиме, работающем поверх драйвера Lima. В мае 2018 года разработчик из Лимы разместил драйвер для включения в ядро ​​Linux. По состоянию на май 2019 года драйвер Lima является частью основного ядра Linux.

Panfrost - это модифицированный драйвер для графических процессоров Mali Txxx (Midgard) и Gxx (Bifrost). Введение в Panfrost было представлено на конференции разработчиков X.Org 2018. По состоянию на май 2019 года драйвер Panfrost является частью основного ядра Linux.

ARM не заявила о намерении предоставлять поддержку своего оборудования для ускорения графики, лицензированного по бесплатной лицензии с открытым исходным кодом. Однако сотрудники ARM отправили исправления для ядра Linux для поддержки контроллера дисплея ARM HDLCD и SIP-блоков Mali DP500, DP550 и DP650 в декабре 2015 и апреле 2016 года.

Воображение Технологии

Imagination Technologies - полупроводниковая компания без фабрик, которая разрабатывает и лицензирует полупроводниковые ядра интеллектуальной собственности, в том числе графические процессоры PowerVR. Intel произвела ряд графических процессоров на базе PowerVR. Графические процессоры PowerVR широко используются в мобильных SoC. Компания не предоставляет драйверы FOSS или общедоступную документацию для PowerVR. Из-за его широкого использования во встраиваемых устройствах Free Software Foundation включил обратное проектирование драйвера PowerVR в свой список приоритетных проектов.

Виванте

См. Также: Vivante GCxxxx

Vivante Corporation - полупроводниковая компания без фабрик, которая лицензирует полупроводниковые ядра интеллектуальной собственности и разрабатывает графические процессоры серии GCxxxx. Проприетарный драйвер Linux с закрытым исходным кодом Vivante состоит из частей ядра и пользовательского пространства. Хотя компонент ядра является открытым исходным кодом ( GPL ), компоненты пользовательского пространства, состоящие из реализаций GLES (2) и библиотеки HAL, таковыми не являются; они содержат основную часть логики драйвера.

Владимир Дж. Ван дер Лаан обнаружил и задокументировал биты состояния, командный поток и шейдерный ISA, изучив, как работают большие двоичные объекты, изучив и управляя дампами командного потока. Драйвер Etnaviv Gallium3D пишется на основе этой документации. Работа Ван дер Лаана была вдохновлена ​​драйвером Lima, и в рамках проекта был создан функциональный, но не оптимизированный драйвер LLVM Gallium3D. Драйвер Etnaviv показал лучшие результаты, чем проприетарный код Vivante, в некоторых тестах и ​​поддерживает серии Vivante GC400, GC800, GC1000, GC2000, GC3000 и GC7000. В январе 2017 года Etnaviv был добавлен в Mesa с поддержкой OpenGL ES 2.0 и Desktop OpenGL 2.1.

Qualcomm

См. Также: Adreno

Qualcomm разрабатывает серию мобильных графических процессоров Adreno (ранее ATI Imageon ) и включает их в свою серию мобильных SoC Snapdragon. В 2012 году Phoronix и Slashdot сообщили, что Роб Кларк, вдохновленный драйвером Lima, работал над обратным проектированием драйверов для серии графических процессоров Adreno. В упомянутом сообщении блога Кларк написал, что занимается этим проектом в свободное время и что платформа Qualcomm является его единственной жизнеспособной целью для работы с открытой трехмерной графикой. Его работодатели ( Texas Instruments и Linaro ) были связаны с ядрами Imagination PowerVR и ARM Mali, которые были его основными целями; у него были рабочие потоки команд для поддержки 2D, и команды 3D, казалось, имели те же характеристики. Код драйвера был опубликован на Gitorious "freedreno" и перенесен в Mesa. В 2012 году был завершен рабочий шейдерный ассемблер; были разработаны демонстрационные версии для наложения текстур и затенения фонга с использованием переработанного компилятора шейдеров. Кларк продемонстрировал Freedreno, работающий на настольном композитинге, медиаплеер XBMC и Quake III Arena на FOSDEM 2 февраля 2013 года.

В августе 2013 года компонент ядра freedreno (драйвер MSM) был принят в основную линию и доступен в ядре Linux 3.12 и более поздних версиях. Драйвер DDX получил поддержку серверов управляемого дескрипторов файлов, требующих X.Org Server, версия 1.16 и выше в июле 2014 г. В январе 2016 года Mesa водитель Gallium3D стиль получил поддержку Adreno 430; в ноябре того же года драйвер добавил поддержку серии Adreno 500. Freedreno можно использовать на таких устройствах, как 96Boards Dragonboard 410c и Nexus 7 (2013), в традиционных дистрибутивах Linux (таких как Debian и Fedora ) и на Android.

Broadcom

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

Broadcom разрабатывает и проектирует серию графических процессоров VideoCore как часть своих SoC. Поскольку он используется Raspberry Pi, драйвер FOSS для VideoCore вызвал значительный интерес. 24 октября 2012 года Raspberry Pi Foundation в сотрудничестве с Broadcom объявили, что они открыли исходный код «всего кода ARM (CPU), который управляет графическим процессором». Однако это объявление вводило в заблуждение; По словам автора модифицированного драйвера Lima, новые компоненты с открытым исходным кодом допускали только передачу сообщений между процессором ARM и VideoCore, но не давали понимания Videocore и мало дополнительной программируемости. Графический процессор Videocore работает под управлением ОСРВ, которая обрабатывает обработку; видеоускорение осуществляется с помощью прошивки RTOS, закодированной для ее проприетарного графического процессора, и на тот момент прошивка не была в открытом доступе. Поскольку не было ни цепочки инструментов, нацеленной на проприетарный графический процессор, ни задокументированного набора инструкций, никаких преимуществ не было бы, если бы исходный код прошивки стал доступен. Проект Videocoreiv попытался задокументировать графические процессоры VideoCore.

28 февраля 2014 года (вторая годовщина Raspberry Pi) Broadcom и Raspberry Pi Foundation объявили о выпуске полной документации для графического ядра VideoCore IV и полной версии исходного кода графического стека по лицензии BSD с тремя пунктами. Бесплатная лицензия на код трехмерной графики была добавлена ​​в Mesa 29 августа 2014 года и впервые появилась в версии 10.3 Mesa.

Другие поставщики

Хотя Silicon Integrated Systems и VIA Technologies проявили ограниченный интерес к драйверам с открытым исходным кодом, оба выпустили исходный код, который был интегрирован в X.Org разработчиками FOSS. В июле 2008 года VIA открыла документацию по своим продуктам, чтобы улучшить свой имидж в сообществах Linux и разработчиков ПО с открытым исходным кодом. Компания не смогла сотрудничать с сообществом разработчиков ПО с открытым исходным кодом, чтобы предоставить документацию и работающий драйвер DRM, в результате чего ожидания поддержки Linux не оправдались. 6 января 2011 года было объявлено, что VIA больше не заинтересована в поддержке инициатив по бесплатной графике.

DisplayLink анонсировала проект с открытым исходным кодом Libdlo с целью обеспечить поддержку своей графической технологии USB для Linux и других платформ. Его код доступен по лицензии LGPL, но не интегрирован в драйвер X.Org. Поддержка графики DisplayLink доступна через драйвер ядра udlfb (с fbdev) в основной строке и драйвер udl / drm, который в марте 2012 года был доступен только в дереве drm-next.

Поставщики, не связанные с оборудованием, также могут помочь инициативам по бесплатной графике. В Red Hat есть два штатных сотрудника (Дэвид Эйрли и Жером Глисс), которые работают над программным обеспечением Radeon, а проект Fedora спонсирует мероприятие Fedora Graphics Test Week перед выпуском новых версий дистрибутива Linux для тестирования бесплатных графических драйверов. Другие компании, предоставившие разработку или поддержку, включают Novell и VMware.

Открытые аппаратные проекты

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

Проект VGA направлен на создание малобюджетной видеокарты с открытым исходным кодом, совместимой с VGA. Проект Open Graphics направлен на создание графического процессора с открытым аппаратным обеспечением. Open Graphics Device v1 имеет два выхода DVI-I и 100-контактный разъем IDC. В сентябре 2010 года первые 25 плат OGD1 были доступны для подачи заявки и покупки. Система Milkymist на микросхеме, ориентированная на встроенную графику, а не на настольные компьютеры, поддерживает вывод VGA, ограниченный вершинный шейдер и блок 2D-текстурирования.

Nyuzi, экспериментальный процессор GPGPU, включает синтезируемый аппаратный дизайн, написанный в System Verilog, эмулятор набора команд, компилятор C-C ++ на основе LLVM, программные библиотеки и тесты, а также исследует параллельное программное и аппаратное обеспечение. Он может работать на программируемой плате вентильной матрицы Terasic DE2-115.

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

Смотрите также

использованная литература

внешние ссылки

Последняя правка сделана 2023-04-16 07:23:29
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте