В данной заметке, я буду собирать сведения, которые обычно находятся в разрозненном виде. Общий обзора графической подсистемы Linux найти сложно. Что за проблемы присутствуют, - только форумы.
Сведения в заметке могут легко устареть через месяц-два, но она позволит охватить одним взглядом сложившееся положение с графическим ускорением в Linux. Это вводная часть. Также может содержать неточности и разночтения, меру моего понимания и пр.
Intel/AMD/NVidia - три крупнейших производителя видеокарт для персональных компьютеров. Все трое, мало уделяют внимания поддержке своего оборудования в Linux. Последнее время, движение в правильном направлении наметилось, но ещё не достаточно. Правильное направление - это качественные открытые графические драйверы, с поддержкой 2D-3D ускорения и всего того спектра возможностей, о которых я читаю в рекламных проспектах. Пусть это будет один производитель, но чтобы качественно.
Столкнувшись с практической неработоспособностью видеодрайвера для графического процессора Intel GMA3650, я решил внимательнее посмотреть на текущую ситуацию, с обеспеченностью графических процессоров работоспособными драйверами.
Март 2013 года.
Версии приведены по состоянию на март 2013 года. Дополнения вносятся в Августе 2013 года.
Оборудование, для настольных персональных компьютеров, доступное в розницу в России, г. Воронеж, на момент написания заметки.
AMD - Advanced micro devices
Сайт компании: http://www.amd.com/
Фирменный драйвер (closed-source) компании AMD, для её видеокарт, носит название Catalyst
Общая страница технологии Catalist на сайте компании: http://www.amd.com/us/products/technologies/amd-catalyst/Pages/catalyst.aspx
Процессор APU: AMD Trinity A10-5800K, встроенный граф.ускоритель Radeon 7660D.
Последний отдельный графический ускоритель: AMD Radeon HD 7950
Последняя, наиболее производительная серия: AMD Radeon HD 7000 Series (codename Southern Islands)
Последний наиболее производительный ускоритель: AMD Radeon HD 7970 GHZ Edition
7000 серия обеспечивает аппаратную поддержку спецификации OpenGL 4.2, OpenCL 1.2
Привходящее оборудование для настольных персональных компьютеров
Привходящий APU: AMD Richland A10-6800K, встроенный графический ускоритель Radeon HD 8670D. лето 2013 года
Привходящая серия: AMD Radeon HD 8000 Series, 4 квартал 2013 года
Привходящий, наиболее производительный ускоритель: AMD Radeon HD 8970 GHZ Edition
Особенности текущей политики AMD - ежегодное обновление линейки процессоров APU.
Последняя версия фирменного драйвера Catalyst для Linux:
13.4 от 29 мая 2013 года.
13.1 от 17 января 2013 года.
Драйвер ранее, в эпоху ATI, назывался fglrx.
Привходящая версия драйвера Catalyst для Linux: 13.8 beta
Ссылка на страницу последнего драйвера для Linux: http://support.amd.com/us/gpudownload/linux/Pages/radeon_linux.aspx
Общая ссылка на страницу выбора драйвера: http://support.amd.com/us/gpudownload/Pages/index.aspx
Ссылка на страницу предыдущих версий драйвера для Linux:
http://support.amd.com/us/gpudownload/embedded/previous/Pages/embedded_linux.aspx
Основной способ установки: распаковка и запуск скрипта инсталляции, из-под суперпользователя.
Открытый драйвер (open-source), для видеокарт AMD и процессоров AMD APU
Поддержка графических ускорителей AMD Radeon, в оконной системе X Window, в основном обеспечивается драйвером с названием Radeon (x86-video-ati)
Страница с описанием драйвера Radeon: http://www.x.org/wiki/radeon
Последние изменения драйвера: Версия 7.1.0 от 30 января 2013 года, добавлена полная поддержка ускорения двумерной графики (2D acceleration) S.Islands, т.е. серии AMD Radeon HD 7000 Series.
Из интересного: Поддержка AMD APU Trinity добавлена 28 марта 2012 года
Страница со сводной таблицей возможностей, реализованных в открытом драйвере Radeon: http://www.x.org/wiki/RadeonFeature
Для 3d-ускорения видеокарт 7000 и 8000 серии используются т.н. Gallium-драйвер - RadeonSI (сокр. Radeon Southern Islands). Очень базовая поддержка.
Открытый драйвер для встроенной графики процессора AMD APU Trinity (Radeon HD 7660D) в настоящее время разрабатывается.
Intel - Integrated Electronics
Сайт компании: http://www.intel.com/
Последнее кодовое наименование процессоров: ivybridge
Последнее семейство настольных процессоров: Intel Core i7 3-d generation
Последняя серия встраиваемых графических ускорителей Intel: Intel HD Graphics 4000
Привходящее кодовое наименование: haswell
Привходящее кодовое наименование настольных процессоров: haswell-dt
Привходящее семейство настольных процессоров: Intel Core i7,i5,i3 4-d generation
Привходящая серия встраиваемых графических ускорителей Intel: Intel HD Graphics 4600 ( GT2), Intel HD Graphics 5200
Открытый драйвер для оконной системы X Window: x86-video-intel
Последняя версия: 2.21.5 от 20 марта 2013 года
Страница со сводной таблицей возможностей драйвера x86-video-intel: http://www.x.org/wiki/IntelGraphicsDriver
Открытый драйвер x86-video-intel поддерживает SNA/UXA ускорение двумерной графики.
Список наборов микросхем графических ускорителей, поддерживаемых
открытым драйвером Intel: https://01.org/linuxgraphics/about/supported-hardware
Увы, в этом списке, не указана поддержка Intel GMA3650, которая входит в процессор Intel Atom N2800, установленный на материнской плате Intel DN2800MT, на которой эта заметка написана.
NVidia
Сайт: http://www.nvidia.com/
Страница загрузки фирменных драйверов для видеокарт NVidia:
http://www.nvidia.com/object/unix.html
Последняя версия фирменного драйвера nv: 310.40 от 8 марта 2013 года
Последний отдельный графический ускоритель для настольных компьютеров: Geforce GTX Titan
Аппаратно поддерживает Open GL 4.3, OpenCL, CUDA
Открытый драйвер x86-video-nouveau
Страница с описанием драйвера Nouveau: http://nouveau.freedesktop.org/wiki/
Последние изменения драйвера: 1.0.6
Поддерживается ускорение двумерной графики (2D EXA).
Технология Nvidia Optimus не поддерживается в настоящее время свободным драйвером neuveau.
nouveaufb - драйвер для виртуальной консоли.
Технологии, графические подсистемы, прикладные интерфейсы
X.Org
X.Org - свободная реализация оконной системы X Window system.
Сайт: http://www.x.org/wiki/
Чтобы узнать версию установленного X сервера:
$ X -version
X.Org X Server 1.13.3
Release Date: 2013-03-07
X Protocol Version 11, Revision 0
Журнал загрузки X сервера: /var/log/Xorg.0.log
Mesa
Mesa - открытая реализация интерфейса прикладного программирования трехмерной графики (API OpenGL), в виде библиотеки.
Сайт разработчика спецификации OpenGL: http://www.khronos.org/opengl
Последняя версия спецификации: OpenGL 4.3, OpenGL Shading Language 4.30, от 6 августа 2012 года
Сайт библиотеки Mesa: http://www.mesa3d.org/
Последняя версия: 9.2 от 27 августа 2013 года
Уровень поддержки спецификации OpenGL
Для достижения полной поддержки спецификации OpenGL 3.2 осталось реализовать язык "shader language 1.5" - GLSL 1.5.
Проверка версии Mesa в системе Ubuntu 13.04 установленной на плате Intel DN2800MT - команда glxinfo
gimmor@oko$ glxinfo | grep "OpenGL"
OpenGL vendor string: VMware, Inc.
OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 0x301)
OpenGL version string: 2.1 Mesa 9.0.3
OpenGL shading language version string: 1.20
OpenGL extensions:
Откуда сразу становиться понятно, что версия в пакетах Ubuntu - не самая последняя, но устаревающая. Используется программный отрисовщик трехмерной графики. Поддерживается спецификация OpenGL версии 2.1, shading language 1.2.
Помимо OpenGL, библиотека Mesa поддерживает API OpenGL ES 1 и ES 2, OpenVG и EGL.
Gallium3D
Gallium3D - унифицирующий слой API. В настоящее время - часть исходных кодов библиотеки Mesa.
Унификация прикладного интерфейса породила термин Gallium-драйвер, это та часть, которая отличается, - своя для каждого графического ускорителя.
EXA 2D acceleration
Стандартный способ ускорения двумерной графики графическим ускорителем, используемый в X сервере.
В настоящее время, большинство графических драйверов X Windows реализуют EXA ускорение.
XAA XFree86 Acceleration Architecure
Устаревший способ ускорения двумерной графики - XAA, удалён из базы исходных кодов, начиная с версии X.Org 1.13.
SNA/UXA 2D acceleration
Способы ускорения двумерной графики используемые в открытом драйвере Intel для X Window.
UXA - первый реализованный способ, SNA - его дальнейшее развитие.
SNA - Sandy Bridge New Acceleration
Отличительная черта UXA - использование GEM (Graphics Execution Manager). GEM включен в состав ядра Linux и используется для поддержки работы драйвера intel.
Отличие SNA от UXA в переработанной внутренней структуре.
CLAMOR 2D acceleration - 2D over OpenGL
Ускорение отрисовки двумерной графики (2d), посредством 3d-драйвера.
Впервые введён в кодовой базе открытого драйвера x86-video-intel.
Новейший RadeonSI также поддерживает такую возможность.
Опция «AccelMethod» «glamor» в секции Device конфигурационного файла xorg.conf
OpenCL - Open Computing Language
OpenCL - каркас - полузабытое слово, способ организации программирования графических ускорителей (GPU), для использования
в обычных вычислениях. Содержит язык C99 и прикладной интерфейс
программирования.
Последняя версия спецификации: OpenCL
OpenVG
Ускорение векторной графики.
Сайт: http://www.khronos.org/openvg/
LLVM Low lever virtual machine
Унифицирующая технология компиляторов.
В Mesa используется программным ускорителем llvmpipe.
LLVMPipe
LLVMPipe - "пипе - ага, вот откуда пошла пипетка" - программный3d-растеризатор, как замена аппаратному ускорителю в графическом процессоре. Используется в т.н. "fallback" - безопасном режиме, при неработоспособности аппаратуры.
http://www.mesa3d.org/llvmpipe.html
VA-API Video acceleration application program interface
VA-API (Video acceleration application program interface) - открытый прикладной интерфейс, библиотека, обеспечивающая аппаратное ускорение декодирования видеоформатов.
http://www.freedesktop.org/wiki/Software/vaapi
Предложен фирмой Intel, в её свободных драйверах для своей встроенной графики.
VDPAU Video Decode and Presentation API
Наиболее поддерживаемый прикладной API для ускорения декодирования видеоформатов.
Предложен NVidia. Выступает как альтернатива иным прикладным интерфейсам ускорения декодирования видеоформатов (см. выше. VA-API).
XvBA X-Video Bitstream Acceleration
Открытый (open-source) прикладной API для ускорения декодирования видеоформатов, но работающий на закрытом драйвере AMD/ATI (Catalyst, быв. fglrx), предложенный фирмой AMD.
Может выступать как исполняющаяся часть VA-API.
VESA
VESA - стандартный графический драйвер, без ускорения.
FB Framebuffer
FB графический драйвер виртуальной консоли
AIGLX
$ cat /var/log/Xorg.0.log | grep AIGLX
[ 19.390] (==) AIGLX enabled
[ 19.826] (II) AIGLX: Screen 0 is not DRI2 capable
[ 19.826] (II) AIGLX: Screen 0 is not DRI capable
[ 19.863] (II) AIGLX: Loaded and initialized swrast
Direct rendering - способ прямого доступа к аппаратуре графического ускорителя
Изначально, ядро Linux, не разрешало прямого доступа к аппаратуре, в силу архитектуры своих корней Unix. Задумывалось скрыть оборудование от пользователя слоем абстрации. Однако, позже это вызвало трудности использования графических ускорителей в пользовательском пространстве, что и привело к созданию интерфейса DRI.
DDX
Драйвер внутри X Window
DRI - Direct Rendering Infrastructure
Страница проекта DRI: http://dri.sourceforge.net/
DRI2 - Direct Rendering Infrastructure 2
Страница проекта DRI2: http://www.x.org/wiki/DRI2/
Новая архитектура DRI.
DRM - Direct Rendering Manager
DRM - часть инфраструктуры DRI, находится в ядре.
LibDRM
Часть системы X Window, ответственная за прямой доступ к аппаратному ускорению.
KMS - Kernel Mode Settings
Mode settings - установка режима работы видеокарты - резрешения и числа цветов (битность, глубина цвета), выходов (outputs).
KMS в настоящее время поддерживают графические драйверы radeon, intel, nouveau
Используется для установки консоли высокого разрешения. Стандартная консоль имеет размер 80 символов на 25 строк.
GRUB2 - загрузчик (bootloader)
Опции, передаваемые ядру при загрузке (через GRUB):
text - загрузка в текстовом режиме
xforcevesa - принудительная (силой) загрузка драйвера стандарта VESA. Использовать когда невозможно загрузить обычный видеодрайвер. Т.е. это похоже на безопасный режим. Любая видеокарта поддерживает VESA режимы. Однако не будет 2D-ускорения.
nomodeset - отключение установки режимов, посредством KMS
video - установки режимов
Утилита xrandr
Управление выводами видеокарты, режимами, цветом, компоновкой многомониторных конфигураций. Часть системы X Window.
Последняя версия: 1.2
Привходящая версия: 1.4
Wayland
Новый графический сервер. Запущен в разработку компаниями Intel и Reg hat. (синий волк и красная шапочка).
Страница http://wayland.freedesktop.org/
Последняя версия: 1.2
XWayland
Слой интеграции между X.Org и Wayland.
Mir
Новый собственный графический сервер (стэк) от Canonical.
Основное преимущество - работа на разнообразных платформах, от ПК до телефонов.
Ожидается и уже работает в Ubuntu 13.10.
XMir
Прослойка, позволяющая запускать приложения оконного сервера X, на сервере Mir.
NVidia Optimus
Технология переключения видеокарт "на лету".
bumblebee-nvidia
Поддержка технологии NVIDIA Optimus с использованием несвободного драйвера NVIDIA.
Unified Video Decoder UVD
В графических процессорах AMD - блок аппаратного декодирования битовых потоков, закодированных в стандартах H.264, AVC, VM-1 и пр.
В открытых драйверах Radeon появляется поддержка UVD.
VCE Video Codec Engine
В новейших графических процессорах AMD (AMD Radeon HD 7970) - блок аппаратного кодирования видеопотоков (VCE).
Данный аппаратный модуль присутствует и в гибридных процессорах AMD APU.
DPM Dynamic Power Management
Технология управления потреблением питания, а значит и скоростью графической части в процессорах AMD APU.
Поддержка недавно введена в ядро Linux 3.11.
Обеспечивает существенное увеличение графической производительности встроенного в APU графического ядра, по сравнению с предыдущими.
Опция ядра: radeon.dpm=1
Что же будет когда все возможности чипов AMD будут использоваться открытыми драйверами.
libglvnd
Библиотека-диспетчер (Vendor-Neutral GL Dispatch Library). Прослойка позволяющая иметь одновременно в системе различные реализации OpenGL, от различных поставщиков. По идее, если я правильно понял, можно будет иметь видеокарты от AMD и NVidia в одной системе.
Linux OpenGL ABI
Исходные коды и более развернутое описание libglvnd: https://github.com/NVIDIA/libglvnd
Intel QuickSync
Аппаратная технология Intel для ускорения кодирования/декодирования видеоформатов.
Официально, в операционной системе Linux поддержка Intel QuickSync не осуществляется.
Существуюет свободный декодер видеоформатов поддерживающий Intel QuickSync decoder.
Выводы. Intel vs AMD
Для нормальной рабочей конфигурации рассчитанной на использование двумерной графики(разработка программ, почта, интернет и пр.) - выбор прост - Intel HD4000 и соответственно платформа Intel, т.к. существуют открытые драйверы.
Для экспериментов с поддержкой графики AMD - выбор APU AMD. Жаль, AMD выпускает процессоры дешевле Intel, с хорошей встроенной графикой, но не ориентируется на аудиторию Linux - это маркетинговый просчёт, либо специальные соглашения с "оффтопик". А потребность существует, огромна и нормальный открытый драйвер для APU позволит очистить склады моментально. Увы, - "денег не надо" ©Д.Е.Г.
Высокая частота обновления графических процессоров не оставляет шансов устаревшим версиям на полноценную поддержку, в результате получается - новые процессоры ещё не поддерживаются, а старые уже не поддерживаются. ИМХО.
Для моих целей (разработка) выбор может быть любым. И только открытый драйвер.
Ресурсы
. http://en.wikipedia.org/wiki/Radeon_HD_7000_Series
. Запуск поддержки Glamor: http://phoronix.com/forums/showthread.php?78512-Running-radeonsi-on-Ubuntu-13-04
. О текущей поддержке спецификации OpenGL в свободной библиотеке Mesa/Gallium3D. http://www.phoronix.com/scan.php?page=news_item&px=MTMzMzI
. Форум Ixbt - i3 vs A10, http://forum.ixbt.com/topic.cgi?id=8:24062
- Компания AMD открыла код для ускорения декодирования видео силами UVD-декодеров GPU. http://www.opennet.ru/opennews/art.shtml?num=36571
- О технологии Intel QuickSync. http://ru.wikipedia.org/wiki/Intel_Quick_Sync_Video
- Свободный декодер на основе Intel QuickSync. http://sourceforge.net/projects/qsdecoder/
- AMD Fusion Linux Gallium3D Performance Has Improved A Lot. http://www.phoronix.com/vr.php?view=19007
- http://en.wikipedia.org/wiki/X-Video_Bitstream_Acceleration
- NVIDIA Publishes Vendor-Neutral GL Dispatch Library. http://www.phoronix.com/scan.php?page=news_item&px=MTQ0NzU
Сведения в заметке могут легко устареть через месяц-два, но она позволит охватить одним взглядом сложившееся положение с графическим ускорением в Linux. Это вводная часть. Также может содержать неточности и разночтения, меру моего понимания и пр.
Intel/AMD/NVidia - три крупнейших производителя видеокарт для персональных компьютеров. Все трое, мало уделяют внимания поддержке своего оборудования в Linux. Последнее время, движение в правильном направлении наметилось, но ещё не достаточно. Правильное направление - это качественные открытые графические драйверы, с поддержкой 2D-3D ускорения и всего того спектра возможностей, о которых я читаю в рекламных проспектах. Пусть это будет один производитель, но чтобы качественно.
Столкнувшись с практической неработоспособностью видеодрайвера для графического процессора Intel GMA3650, я решил внимательнее посмотреть на текущую ситуацию, с обеспеченностью графических процессоров работоспособными драйверами.
Март 2013 года.
Версии приведены по состоянию на март 2013 года. Дополнения вносятся в Августе 2013 года.
Оборудование, для настольных персональных компьютеров, доступное в розницу в России, г. Воронеж, на момент написания заметки.
AMD - Advanced micro devices
Сайт компании: http://www.amd.com/
Фирменный драйвер (closed-source) компании AMD, для её видеокарт, носит название Catalyst
Общая страница технологии Catalist на сайте компании: http://www.amd.com/us/products/technologies/amd-catalyst/Pages/catalyst.aspx
Процессор APU: AMD Trinity A10-5800K, встроенный граф.ускоритель Radeon 7660D.
Последний отдельный графический ускоритель: AMD Radeon HD 7950
Последняя, наиболее производительная серия: AMD Radeon HD 7000 Series (codename Southern Islands)
Последний наиболее производительный ускоритель: AMD Radeon HD 7970 GHZ Edition
7000 серия обеспечивает аппаратную поддержку спецификации OpenGL 4.2, OpenCL 1.2
Привходящее оборудование для настольных персональных компьютеров
Привходящий APU: AMD Richland A10-6800K, встроенный графический ускоритель Radeon HD 8670D. лето 2013 года
Привходящая серия: AMD Radeon HD 8000 Series, 4 квартал 2013 года
Привходящий, наиболее производительный ускоритель: AMD Radeon HD 8970 GHZ Edition
Особенности текущей политики AMD - ежегодное обновление линейки процессоров APU.
Последняя версия фирменного драйвера Catalyst для Linux:
13.4 от 29 мая 2013 года.
13.1 от 17 января 2013 года.
Драйвер ранее, в эпоху ATI, назывался fglrx.
Привходящая версия драйвера Catalyst для Linux: 13.8 beta
Ссылка на страницу последнего драйвера для Linux: http://support.amd.com/us/gpudownload/linux/Pages/radeon_linux.aspx
Общая ссылка на страницу выбора драйвера: http://support.amd.com/us/gpudownload/Pages/index.aspx
Ссылка на страницу предыдущих версий драйвера для Linux:
http://support.amd.com/us/gpudownload/embedded/previous/Pages/embedded_linux.aspx
Основной способ установки: распаковка и запуск скрипта инсталляции, из-под суперпользователя.
Открытый драйвер (open-source), для видеокарт AMD и процессоров AMD APU
Поддержка графических ускорителей AMD Radeon, в оконной системе X Window, в основном обеспечивается драйвером с названием Radeon (x86-video-ati)
Страница с описанием драйвера Radeon: http://www.x.org/wiki/radeon
Последние изменения драйвера: Версия 7.1.0 от 30 января 2013 года, добавлена полная поддержка ускорения двумерной графики (2D acceleration) S.Islands, т.е. серии AMD Radeon HD 7000 Series.
Из интересного: Поддержка AMD APU Trinity добавлена 28 марта 2012 года
Страница со сводной таблицей возможностей, реализованных в открытом драйвере Radeon: http://www.x.org/wiki/RadeonFeature
Для 3d-ускорения видеокарт 7000 и 8000 серии используются т.н. Gallium-драйвер - RadeonSI (сокр. Radeon Southern Islands). Очень базовая поддержка.
Открытый драйвер для встроенной графики процессора AMD APU Trinity (Radeon HD 7660D) в настоящее время разрабатывается.
Intel - Integrated Electronics
Сайт компании: http://www.intel.com/
Последнее кодовое наименование процессоров: ivybridge
Последнее семейство настольных процессоров: Intel Core i7 3-d generation
Последняя серия встраиваемых графических ускорителей Intel: Intel HD Graphics 4000
Привходящее кодовое наименование: haswell
Привходящее кодовое наименование настольных процессоров: haswell-dt
Привходящее семейство настольных процессоров: Intel Core i7,i5,i3 4-d generation
Привходящая серия встраиваемых графических ускорителей Intel: Intel HD Graphics 4600 ( GT2), Intel HD Graphics 5200
Открытый драйвер для оконной системы X Window: x86-video-intel
Последняя версия: 2.21.5 от 20 марта 2013 года
Страница со сводной таблицей возможностей драйвера x86-video-intel: http://www.x.org/wiki/IntelGraphicsDriver
Открытый драйвер x86-video-intel поддерживает SNA/UXA ускорение двумерной графики.
Список наборов микросхем графических ускорителей, поддерживаемых
открытым драйвером Intel: https://01.org/linuxgraphics/about/supported-hardware
Увы, в этом списке, не указана поддержка Intel GMA3650, которая входит в процессор Intel Atom N2800, установленный на материнской плате Intel DN2800MT, на которой эта заметка написана.
NVidia
Сайт: http://www.nvidia.com/
Страница загрузки фирменных драйверов для видеокарт NVidia:
http://www.nvidia.com/object/unix.html
Последняя версия фирменного драйвера nv: 310.40 от 8 марта 2013 года
Последний отдельный графический ускоритель для настольных компьютеров: Geforce GTX Titan
Аппаратно поддерживает Open GL 4.3, OpenCL, CUDA
Открытый драйвер x86-video-nouveau
Страница с описанием драйвера Nouveau: http://nouveau.freedesktop.org/wiki/
Последние изменения драйвера: 1.0.6
Поддерживается ускорение двумерной графики (2D EXA).
Технология Nvidia Optimus не поддерживается в настоящее время свободным драйвером neuveau.
nouveaufb - драйвер для виртуальной консоли.
Технологии, графические подсистемы, прикладные интерфейсы
X.Org
X.Org - свободная реализация оконной системы X Window system.
Сайт: http://www.x.org/wiki/
Чтобы узнать версию установленного X сервера:
$ X -version
X.Org X Server 1.13.3
Release Date: 2013-03-07
X Protocol Version 11, Revision 0
Журнал загрузки X сервера: /var/log/Xorg.0.log
Mesa
Mesa - открытая реализация интерфейса прикладного программирования трехмерной графики (API OpenGL), в виде библиотеки.
Сайт разработчика спецификации OpenGL: http://www.khronos.org/opengl
Последняя версия спецификации: OpenGL 4.3, OpenGL Shading Language 4.30, от 6 августа 2012 года
Сайт библиотеки Mesa: http://www.mesa3d.org/
Последняя версия: 9.2 от 27 августа 2013 года
Уровень поддержки спецификации OpenGL
Для достижения полной поддержки спецификации OpenGL 3.2 осталось реализовать язык "shader language 1.5" - GLSL 1.5.
Проверка версии Mesa в системе Ubuntu 13.04 установленной на плате Intel DN2800MT - команда glxinfo
gimmor@oko$ glxinfo | grep "OpenGL"
OpenGL vendor string: VMware, Inc.
OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 0x301)
OpenGL version string: 2.1 Mesa 9.0.3
OpenGL shading language version string: 1.20
OpenGL extensions:
Откуда сразу становиться понятно, что версия в пакетах Ubuntu - не самая последняя, но устаревающая. Используется программный отрисовщик трехмерной графики. Поддерживается спецификация OpenGL версии 2.1, shading language 1.2.
Помимо OpenGL, библиотека Mesa поддерживает API OpenGL ES 1 и ES 2, OpenVG и EGL.
Gallium3D
Gallium3D - унифицирующий слой API. В настоящее время - часть исходных кодов библиотеки Mesa.
Унификация прикладного интерфейса породила термин Gallium-драйвер, это та часть, которая отличается, - своя для каждого графического ускорителя.
EXA 2D acceleration
Стандартный способ ускорения двумерной графики графическим ускорителем, используемый в X сервере.
В настоящее время, большинство графических драйверов X Windows реализуют EXA ускорение.
XAA XFree86 Acceleration Architecure
Устаревший способ ускорения двумерной графики - XAA, удалён из базы исходных кодов, начиная с версии X.Org 1.13.
SNA/UXA 2D acceleration
Способы ускорения двумерной графики используемые в открытом драйвере Intel для X Window.
UXA - первый реализованный способ, SNA - его дальнейшее развитие.
SNA - Sandy Bridge New Acceleration
Отличительная черта UXA - использование GEM (Graphics Execution Manager). GEM включен в состав ядра Linux и используется для поддержки работы драйвера intel.
Отличие SNA от UXA в переработанной внутренней структуре.
CLAMOR 2D acceleration - 2D over OpenGL
Ускорение отрисовки двумерной графики (2d), посредством 3d-драйвера.
Впервые введён в кодовой базе открытого драйвера x86-video-intel.
Новейший RadeonSI также поддерживает такую возможность.
Опция «AccelMethod» «glamor» в секции Device конфигурационного файла xorg.conf
OpenCL - Open Computing Language
OpenCL - каркас - полузабытое слово, способ организации программирования графических ускорителей (GPU), для использования
в обычных вычислениях. Содержит язык C99 и прикладной интерфейс
программирования.
Последняя версия спецификации: OpenCL
OpenVG
Ускорение векторной графики.
Сайт: http://www.khronos.org/openvg/
LLVM Low lever virtual machine
Унифицирующая технология компиляторов.
В Mesa используется программным ускорителем llvmpipe.
LLVMPipe
LLVMPipe - "пипе - ага, вот откуда пошла пипетка" - программный3d-растеризатор, как замена аппаратному ускорителю в графическом процессоре. Используется в т.н. "fallback" - безопасном режиме, при неработоспособности аппаратуры.
http://www.mesa3d.org/llvmpipe.html
VA-API Video acceleration application program interface
VA-API (Video acceleration application program interface) - открытый прикладной интерфейс, библиотека, обеспечивающая аппаратное ускорение декодирования видеоформатов.
http://www.freedesktop.org/wiki/Software/vaapi
Предложен фирмой Intel, в её свободных драйверах для своей встроенной графики.
VDPAU Video Decode and Presentation API
Наиболее поддерживаемый прикладной API для ускорения декодирования видеоформатов.
Предложен NVidia. Выступает как альтернатива иным прикладным интерфейсам ускорения декодирования видеоформатов (см. выше. VA-API).
XvBA X-Video Bitstream Acceleration
Открытый (open-source) прикладной API для ускорения декодирования видеоформатов, но работающий на закрытом драйвере AMD/ATI (Catalyst, быв. fglrx), предложенный фирмой AMD.
Может выступать как исполняющаяся часть VA-API.
VESA
VESA - стандартный графический драйвер, без ускорения.
FB Framebuffer
FB графический драйвер виртуальной консоли
AIGLX
$ cat /var/log/Xorg.0.log | grep AIGLX
[ 19.390] (==) AIGLX enabled
[ 19.826] (II) AIGLX: Screen 0 is not DRI2 capable
[ 19.826] (II) AIGLX: Screen 0 is not DRI capable
[ 19.863] (II) AIGLX: Loaded and initialized swrast
Direct rendering - способ прямого доступа к аппаратуре графического ускорителя
Изначально, ядро Linux, не разрешало прямого доступа к аппаратуре, в силу архитектуры своих корней Unix. Задумывалось скрыть оборудование от пользователя слоем абстрации. Однако, позже это вызвало трудности использования графических ускорителей в пользовательском пространстве, что и привело к созданию интерфейса DRI.
DDX
Драйвер внутри X Window
DRI - Direct Rendering Infrastructure
Страница проекта DRI: http://dri.sourceforge.net/
DRI2 - Direct Rendering Infrastructure 2
Страница проекта DRI2: http://www.x.org/wiki/DRI2/
Новая архитектура DRI.
DRM - Direct Rendering Manager
DRM - часть инфраструктуры DRI, находится в ядре.
LibDRM
Часть системы X Window, ответственная за прямой доступ к аппаратному ускорению.
KMS - Kernel Mode Settings
Mode settings - установка режима работы видеокарты - резрешения и числа цветов (битность, глубина цвета), выходов (outputs).
KMS в настоящее время поддерживают графические драйверы radeon, intel, nouveau
Используется для установки консоли высокого разрешения. Стандартная консоль имеет размер 80 символов на 25 строк.
GRUB2 - загрузчик (bootloader)
Опции, передаваемые ядру при загрузке (через GRUB):
text - загрузка в текстовом режиме
xforcevesa - принудительная (силой) загрузка драйвера стандарта VESA. Использовать когда невозможно загрузить обычный видеодрайвер. Т.е. это похоже на безопасный режим. Любая видеокарта поддерживает VESA режимы. Однако не будет 2D-ускорения.
nomodeset - отключение установки режимов, посредством KMS
video - установки режимов
Утилита xrandr
Управление выводами видеокарты, режимами, цветом, компоновкой многомониторных конфигураций. Часть системы X Window.
Последняя версия: 1.2
Привходящая версия: 1.4
Wayland
Новый графический сервер. Запущен в разработку компаниями Intel и Reg hat. (синий волк и красная шапочка).
Страница http://wayland.freedesktop.org/
Последняя версия: 1.2
XWayland
Слой интеграции между X.Org и Wayland.
Mir
Новый собственный графический сервер (стэк) от Canonical.
Основное преимущество - работа на разнообразных платформах, от ПК до телефонов.
Ожидается и уже работает в Ubuntu 13.10.
XMir
Прослойка, позволяющая запускать приложения оконного сервера X, на сервере Mir.
NVidia Optimus
Технология переключения видеокарт "на лету".
bumblebee-nvidia
Поддержка технологии NVIDIA Optimus с использованием несвободного драйвера NVIDIA.
Unified Video Decoder UVD
В графических процессорах AMD - блок аппаратного декодирования битовых потоков, закодированных в стандартах H.264, AVC, VM-1 и пр.
В открытых драйверах Radeon появляется поддержка UVD.
VCE Video Codec Engine
В новейших графических процессорах AMD (AMD Radeon HD 7970) - блок аппаратного кодирования видеопотоков (VCE).
Данный аппаратный модуль присутствует и в гибридных процессорах AMD APU.
DPM Dynamic Power Management
Технология управления потреблением питания, а значит и скоростью графической части в процессорах AMD APU.
Поддержка недавно введена в ядро Linux 3.11.
Обеспечивает существенное увеличение графической производительности встроенного в APU графического ядра, по сравнению с предыдущими.
Опция ядра: radeon.dpm=1
Что же будет когда все возможности чипов AMD будут использоваться открытыми драйверами.
libglvnd
Библиотека-диспетчер (Vendor-Neutral GL Dispatch Library). Прослойка позволяющая иметь одновременно в системе различные реализации OpenGL, от различных поставщиков. По идее, если я правильно понял, можно будет иметь видеокарты от AMD и NVidia в одной системе.
Linux OpenGL ABI
Исходные коды и более развернутое описание libglvnd: https://github.com/NVIDIA/libglvnd
Intel QuickSync
Аппаратная технология Intel для ускорения кодирования/декодирования видеоформатов.
Официально, в операционной системе Linux поддержка Intel QuickSync не осуществляется.
Существуюет свободный декодер видеоформатов поддерживающий Intel QuickSync decoder.
Выводы. Intel vs AMD
Для нормальной рабочей конфигурации рассчитанной на использование двумерной графики(разработка программ, почта, интернет и пр.) - выбор прост - Intel HD4000 и соответственно платформа Intel, т.к. существуют открытые драйверы.
Для экспериментов с поддержкой графики AMD - выбор APU AMD. Жаль, AMD выпускает процессоры дешевле Intel, с хорошей встроенной графикой, но не ориентируется на аудиторию Linux - это маркетинговый просчёт, либо специальные соглашения с "оффтопик". А потребность существует, огромна и нормальный открытый драйвер для APU позволит очистить склады моментально. Увы, - "денег не надо" ©Д.Е.Г.
Высокая частота обновления графических процессоров не оставляет шансов устаревшим версиям на полноценную поддержку, в результате получается - новые процессоры ещё не поддерживаются, а старые уже не поддерживаются. ИМХО.
Для моих целей (разработка) выбор может быть любым. И только открытый драйвер.
Ресурсы
. http://en.wikipedia.org/wiki/Radeon_HD_7000_Series
. Запуск поддержки Glamor: http://phoronix.com/forums/showthread.php?78512-Running-radeonsi-on-Ubuntu-13-04
. О текущей поддержке спецификации OpenGL в свободной библиотеке Mesa/Gallium3D. http://www.phoronix.com/scan.php?page=news_item&px=MTMzMzI
. Форум Ixbt - i3 vs A10, http://forum.ixbt.com/topic.cgi?id=8:24062
- Компания AMD открыла код для ускорения декодирования видео силами UVD-декодеров GPU. http://www.opennet.ru/opennews/art.shtml?num=36571
- О технологии Intel QuickSync. http://ru.wikipedia.org/wiki/Intel_Quick_Sync_Video
- Свободный декодер на основе Intel QuickSync. http://sourceforge.net/projects/qsdecoder/
- AMD Fusion Linux Gallium3D Performance Has Improved A Lot. http://www.phoronix.com/vr.php?view=19007
- http://en.wikipedia.org/wiki/X-Video_Bitstream_Acceleration
- NVIDIA Publishes Vendor-Neutral GL Dispatch Library. http://www.phoronix.com/scan.php?page=news_item&px=MTQ0NzU
1 комментарий:
Замечательная новость касающаяся поддержки VCE Engine 1.0 в Linux (аппаратный блок кодирования H.264) в APU процессорах
http://www.phoronix.com/scan.php?page=news_item&px=Radeon-VCE-Trinity-Richland
Отправить комментарий