- compizomania
- How do I tell if Ubuntu supports hardware-accelerated graphics on my laptop?
- 3 Answers 3
- Hardware video acceleration (Русский)
- Установка
- Intel
- NVIDIA
- ATI/AMD
- Слои преобразований
- Проверка
- Проверка VA-API
- Проверка VDPAU
- Настройка
- Настройка VA-API
- Настройка VDPAU
- Настройка приложений
- Решение проблем
- Ошибка «Failed to open VDPAU backend»
- Ошибка «init failed» с VAAPI
compizomania
3D-ускорение является общим термином для устройства, которое выполняет графические операции или точнее, освобождает центральный процессор для выполнения других видов расчетов. С аппаратным 3D-ускорением, трехмерные изображения создаются графическим процессором с помщью видеокарты, вместо использования ценных ресурсов ЦП.
С 3D-ускорением вы можете играть в 3D игры.
Итак, как проверить 3D ускорение?
В этой инструкции, представлены команды для выполнения в терминале, необходимые для проверки 3D-ускорения/FPS (Frames Per Second — количество кадров в секунду на экране монитора) видеокарт Nvidia и AMD в следующих дистрибутивах:
Ubuntu 13.10/13.04/12.10/12.04
Linux Mint 16/15/14/13
Прежде всего нужно установить необходимую зависимость, выполнив команду в терминале:
sudo apt-get install mesa-utils
Убедитесь, что 3D-ускорение поддерживается, выполнив следующий тест:
/usr/lib/nux/unity_support_test -p
Если вывод теста в терминале подобный тому, что отображён на снимке, значит ваше оборудование поддерживает 3D-ускорение:
Вы можете использовать glxinfo для проверки 3D-ускорения и рендеринга в терминале:
glxinfo -i | grep render
Вывод команды даст вам информацию о вашей видеокарте (AMD или Nvidia) и рендеринге.
Можно также использовать утилиту glxgears для проверки 3D-ускорения (FPS) в графическом режиме, выполнив следующую команду:
Чтобы использовать утилиту Glxspheres в Ubuntu/Linux Mint, вам нужно сначала установить её, выбрав архитектуру своей системы.
Примечание. Опеделить архитектуру вашей системы можно, открыв Параметры системы — О системе или выполнить команду arch в терминале.
Установка Glxspheres для 64-бит:
cd /tmp && wget http://goo.gl/L7rsGZ -O virtualgl_2.3.3_amd64.deb && sudo dpkg -i —force-depends virtualgl_2.3.3_amd64.deb
sudo apt-get -f install
После установки Glxspheres, выполните проверочную команду для 64-бит:
/opt/VirtualGL/bin/glxspheres64
Установка Glxspheres для 32-бит:
Для устанвки Glxspheres в систему 32-бит, выполните следующие команды:
cd /tmp && wget http://goo.gl/O5AyjX -O virtualgl_2.3.3_i386.deb && sudo dpkg -i —force-depends virtualgl_2.3.3_i386.deb
Для проверки в 32-бит, выполните эту команду:
/opt/VirtualGL/bin/glxspheres
How do I tell if Ubuntu supports hardware-accelerated graphics on my laptop?
The new Gnome 3.0 requires hardware acceleration support. I wanted to try it out — but how do I tell whether hardware acceleration is supported on my machine?
3 Answers 3
Gnome-Shell has very similar graphical requirements as the Unity interface. Therefore, if you want a quick test of potential compatibility, you could run the unity graphical test application via a live CD:
/usr/lib/nux/unity_support_test -p
If you get a picture similar to this with all «yes» values — you probably can assume Gnome-Shell will work.
Well the best way of course is to just try it out 😉
Try a quick search through the ubuntu forums for you computers model number.
Do you have Firefox installed?
Well, then here’s a quick and dirty way without messing around in console at all:
Hit about:support in URL bar, and scroll down to Graphics table (below Extensions).
Surely, it’s not as specific as the unity_support_test script, but it did the trick for me anyway. For one the Device ID and Driver Version lines are already fairly descriptive; furthermore, you can bet your life on it that if it got blacklisted in FF, it will be prone to errors and rendering trouble in Unity as well.
Oh, and the very last line is also a great information: CairoUseXRender. It’s a 100% rule that whenever this is a 0 , one of the first applications ever programmed on X Window, xclock , will not render the clock hands correctly as well!
Hardware video acceleration (Русский)
Состояние перевода: На этой странице представлен перевод статьи Hardware video acceleration. Дата последней синхронизации: 31 марта 2020. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.
Аппаратное ускорение видео (англ.) позволяет выполнять операции кодирования и декодирования видео на стороне видеокарты, разгружая CPU и экономя энергию.
Существуют несколько реализаций этой технологии на Linux:
- Video Acceleration API (VA-API) — разработанная Intel спецификация и свободная библиотека, предоставляющая аппаратное ускорение кодирования и декодирования видео.
- Video Decode and Presentation API for Unix (VDPAU) — разработанная NVIDIA свободная библиотека и API для переноса части процесса декодирования видео и его постобработки на сторону GPU.
- NVDECODE/NVENCODE — проприетарные API аппаратного ускорения, используемые в таких поколениях GPU от NVIDIA, как Fermi, Kepler, Maxwell и Pascal.
Также всесторонний обзор поддержки данных технологий со стороны драйверов и приложений доступен в разделе #Сравнительные таблицы.
Установка
Intel
Свободные драйверы Intel graphics поддерживают VA-API:
- Серия HD Graphics, начиная с Broadwell(~2015) и новее, поддерживается intel-media-driver .
- GMA 4500 series и более новые GPU до Coffee Lake поддерживаются libva-intel-driver .
- Декодирование H.264 на GMA 4500 поддерживается libva-intel-driver-g45-h264AUR , см. Intel graphics (Русский)#Декодирование H.264 на GMA 4500.
- Гибридное декодирование VP9 на процессорах от Broadwell до Skylake, а также гибридное декодирование VP8 на процессорах от Haswell до Skylake, поддерживается intel-hybrid-codec-driverAUR [ссылка недействительна: package not found] .
- Skylake и более новые поколения также требуют linux-firmware .
NVIDIA
Свободный драйвер Nouveau поддерживает как VA-API, так и VDPAU:
- GeForce 8 series и новее (до GeForce GTX 750) поддерживаются libva-mesa-driver и mesa-vdpau .
- Необходимnouveau-fwAUR — пакет с микропрограммой, которая на сегодняшний день извлекается из бинарного драйвера NVIDIA.
Проприетарный драйвер NVIDIA поддерживает следующие технологии с помощью пакета nvidia-utils :
ATI/AMD
Свободные драйверы ATI и AMDGPU поддерживают как VA-API, так и VDPAU:
- VA-API на Radeon HD 2000 и новее поддерживается libva-mesa-driver .
- VDPAU на Radeon R300 и новее поддерживается mesa-vdpau .
Проприетарный драйвер AMDGPU PRO основывается на драйвере AMDGPU и поддерживает как VA-API, так и VDPAU.
Слои преобразований
Активация поддержки VA-API при её отсутствии в драйвере:
- libva-vdpau-driver – бекенд VDPAU для VA-API.
- libva-vdpau-driver-chromiumAUR – бекенд VDPAU для VA-API с патчем, позволяющим взаимодействовать с Chromium.
- libva-vdpau-driver-vp9-gitAUR – экспериментальная поддержка VP9.
Активация поддержки VDPAU при её отсутствии в драйвере:
Проверка
Аппаратное ускорение, скорее всего, хорошо заработает по умолчанию. Проверить это можно описанными ниже способами.
Проверка VA-API
Проверьте настройки VA-API, выполнив vainfo (предоставляется пакетом libva-utils ):
libva info: VA-API version 0.39.4 libva info: va_getDriverName() returns 0 libva info: Trying to open /usr/lib/dri/i965_drv_video.so libva info: Found init function __vaDriverInit_0_39 libva info: va_openDriver() returns 0 vainfo: VA-API version: 0.39 (libva 1.7.3) vainfo: Driver version: Intel i965 driver for Intel(R) Skylake - 1.7.3 vainfo: Supported profile and entrypoints VAProfileMPEG2Simple : VAEntrypointVLD VAProfileMPEG2Simple : VAEntrypointEncSlice VAProfileMPEG2Main : VAEntrypointVLD VAProfileMPEG2Main : VAEntrypointEncSlice VAProfileH264ConstrainedBaseline: VAEntrypointVLD VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP VAProfileH264Main : VAEntrypointVLD VAProfileH264Main : VAEntrypointEncSlice VAProfileH264Main : VAEntrypointEncSliceLP VAProfileH264High : VAEntrypointVLD VAProfileH264High : VAEntrypointEncSlice VAProfileH264High : VAEntrypointEncSliceLP VAProfileH264MultiviewHigh : VAEntrypointVLD VAProfileH264MultiviewHigh : VAEntrypointEncSlice VAProfileH264StereoHigh : VAEntrypointVLD VAProfileH264StereoHigh : VAEntrypointEncSlice VAProfileVC1Simple : VAEntrypointVLD VAProfileVC1Main : VAEntrypointVLD VAProfileVC1Advanced : VAEntrypointVLD VAProfileNone : VAEntrypointVideoProc VAProfileJPEGBaseline : VAEntrypointVLD VAProfileJPEGBaseline : VAEntrypointEncPicture VAProfileVP8Version0_3 : VAEntrypointVLD VAProfileVP8Version0_3 : VAEntrypointEncSlice VAProfileHEVCMain : VAEntrypointVLD VAProfileHEVCMain : VAEntrypointEncSlice
VAEntrypointVLD означает, что видеокарта способна декодировать данный формат, а VAEntrypointEncSlice означает, что данный формат можно кодировать.
В данном примере используется драйвер i965 :
libva info: Trying to open /usr/lib/dri/i965_drv_video.so
Если при выполнении vainfo отображается следующая ошибка:
libva info: va_openDriver() returns -1 vaInitialize failed with error code -1 (unknown libva error),exit
Необходимо задать корректный драйвер, см. #Настройка VA-API.
Проверка VDPAU
Установите пакет vdpauinfo , чтобы получить полный отчёт о конфигурации драйвера VDPAU и убедиться, что он загружен корректно:
display: :0 screen: 0 API version: 1 Information string: G3DVL VDPAU Driver Shared Library version 1.0 Video surface: name width height types
420 16384 16384 NV12 YV12 422 16384 16384 UYVY YUYV 444 16384 16384 Y8U8V8A8 V8U8Y8A8 Decoder capabilities: name level macbs width height
MPEG1 --- not supported --- MPEG2_SIMPLE 3 9216 2048 1152 MPEG2_MAIN 3 9216 2048 1152 H264_BASELINE 41 9216 2048 1152 H264_MAIN 41 9216 2048 1152 H264_HIGH 41 9216 2048 1152 VC1_SIMPLE 1 9216 2048 1152 VC1_MAIN 2 9216 2048 1152 VC1_ADVANCED 4 9216 2048 1152 ..
Настройка
Несмотря на то, что видеодрайвер должен автоматически активировать поддержку аппаратного ускорения видео с помощью VA-API и VDPAU, в некоторых случаях может потребоваться настроить VA-API/VDPAU вручную. Перед тем как продолжать чтение данного раздела, просмотрите раздел #Проверка.
Названия драйверов по умолчанию угадываются системой, если остутствуют какие-либо другие настройки. Однако они часто не совпадают и не работают. Предполагаемые значения можно просмотреть, выполнив следующую команду:
$ grep -iE 'vdpau | dri driver' /var/log/Xorg.0.log
(II) RADEON(0): [DRI2] DRI driver: radeonsi (II) RADEON(0): [DRI2] VDPAU driver: radeonsi
В данном случае по умолчанию используется radeonsi для VA-API и VDPAU.
Примечание: Если используется GDM, выполните вместо этого следующую команду: journalctl -b | grep -iE ‘vdpau | dri driver’ .
Настройка VA-API
Драйвер VA-API можно переопределить с помощью переменной окружения LIBVA_DRIVER_NAME :
- Intel graphics:
- Укажите i965 , если используется libva-intel-driver .
- Укажите iHD , если используется intel-media-driver .
- Укажите nouveau , если используется Nouveau.
- Укажите vdpau , если используется NVIDIA.
- Укажите radeonsi , если используется AMDGPU.
- Установленные драйверы находятся в /usr/lib/dri/ и используются как /usr/lib/dri/$ _drv_video.so .
- Некоторые драйверы устанавливаются несколько раз под разными именами в целях совместимости. Их список можно увидеть, выполнив команду sha1sum /usr/lib/dri/* | sort .
- LIBVA_DRIVERS_PATH может использоваться для переопределения расположения драйверов VA-API.
- Начиная с версии 12.0.1, libva-mesa-driver предоставляет radeonsi вместо gallium .
Настройка VDPAU
Драйвер VDPAU можно переопределить с помощью переменной окружения VDPAU_DRIVER .
Корректное название драйвера зависит от конфигурации:
- Если используется Intel Graphics или AMD Catalyst, необходимо задать va_gl .
- Если используется свободный драйвер AMD/ATI, задайте соответствующую версию драйвера, в зависимости от видеокарты. См. #Проверка.
- Если используется свободный драйвер Nouveau, задайте nouveau .
- Если используется проприетарный драйвер NVIDIA, задайте nvidia .
- Установленные драйверы находятся в /usr/lib/vdpau/ и используются как /usr/lib/vdpau/libvdpau_$ .so .
- Некоторые драйверы устанавливаются несколько раз под разными именами в целях совместимости. Их список можно увидеть, выполнив команду sha1sum /usr/lib/vdpau/* .
- В случае с конфигурацией с гибридной графикой (как с NVIDIA, так и с AMD), может потребоваться задать переменную окружения DRI_PRIME=1 . См. статью PRIME для получения более подробной информации.
Настройка приложений
Решение проблем
Ошибка «Failed to open VDPAU backend»
Необходимо задать переменную VDPAU_DRIVER , указывающую на корректный драйвер. См. #Настройка VDPAU.
Ошибка «init failed» с VAAPI
Данная ошибка (например, libva: /usr/lib/dri/i965_drv_video.so init failed ) может происходить из-за неправильного определения Wayland. Одно из решений — сбросить переменную $DISPLAY , таким образом, mpv, MPlayer, VLC и т.д. не будут исходить из того, что используется X11. Также можно добавить аргумент —gpu-context=wayland , если используется mpv.