Intel vaapi driver как установить

Обновлено: 07.07.2024

Hardware video acceleration makes it possible for the video card to decode/encode video, thus offloading the CPU and saving power.

There are several ways to achieve this on Linux:

    (VA-API) is a specification and open source library to provide both hardware accelerated video encoding and decoding, developed by Intel. (VDPAU) is an open source library and API to offload portions of the video decoding process and video post-processing to the GPU video-hardware, developed by NVIDIA. - NVIDIA's proprietary APIs for hardware video acceleration, used by NVIDIA GPUs from Fermi onwards.

Установка драйвера Intel в Ubuntu

Вы можете посмотреть какой сейчас драйвер видеокарты используется с помощью команды lspci:


Как видите, в данном примере используется i915, это драйвер видеокарты от Intel. Он работает и ничего больше устанавливать не нужно. Если же в этой строчке находится что-то другое, можно попытаться установить драйвер.

Для установки части драйвера для Xorg и Mesa достаточно установить в систему такие пакеты:

sudo apt install xserver-xorg-video-intel

sudo apt install mesa-utils


Если вы хотите получить самую последнюю версию драйвера можно воспользоваться специальным PPA. Для добавления репозитория в систему выполните:

sudo add-apt-repository ppa:oibaf/graphics-drivers

Затем просто обновите систему и перезагрузите компьютер:

sudo apt full-upgrade

Verification

Your system may work perfectly out-of-the-box without needing any configuration. Therefore it is a good idea to start with this section to see that it is the case.

    with its command-line support is great for testing hardware acceleration. Look at the log of mpv --hwdec=auto video_filename and see hwdec for more details.
  • For Intel GPU, use intel-gpu-tools and run intel_gpu_top as root to monitor the GPU activity during video playback for example. The video bar being above 0% indicates GPU video decoder/encoder usage.
  • For AMD GPU, use radeontop to monitor GPU activity. Unlike intel-gpu-tools , there is currently no way to see decode/encode usage on radeontop[2].
  • For any GPU, you can compare CPU usage with a tool like htop . Especially for higher resolution videos (4k+), CPU usage when VA-API is enabled and working should be dramatically lower on laptops and other relatively low-power devices.

Verifying VA-API

Verify the settings for VA-API by running vainfo , which is provided by libva-utils :

VAEntrypointVLD means that your card is capable to decode this format, VAEntrypointEncSlice means that you can encode to this format.

In this example the i965 driver is used, as you can see in this line:

If the following error is displayed when running vainfo :

Verifying VDPAU

Install vdpauinfo to verify if the VDPAU driver is loaded correctly and retrieve a full report of the configuration:

Опции модуля для энергосбережения

Модуль ядра i915 можно конфигурировать через опции модуля. Часть этих опций модуля влияют на энергосбережение.

Для проверки, какие опции в данный момент включены, воспользуйтесь командой

Список всех опций с кратким их описанием и значения по умолчанию можно получить командой:

Следующий набор опций, как правило, можно включить без негативных последствий:

Вы можете поэкспериментировать со более большими значениями enable_rc6 , однако ваша видеокарта может их не поддерживать [4].

Официальный установщик драйверов Intel

Contents

Configuration

The default driver names, used if there is no other configuration present, are guess by the system. However, they are often hacked together and may not work. You can see the guessed values by running:

In this case radeonsi is the default for both VA-API and VDPAU.

Note: If you use GDM, run journalctl -b --grep='vdpau | dri driver' as root instead.

This does not represent the configuration however. The values above will not change even if you override them.

Configuring VA-API

You can override the driver for VA-API by using the LIBVA_DRIVER_NAME environment variable:

    :
    • For libva-intel-driver use i965 .
    • For intel-media-driver use iHD .
    • For Nouveau use nouveau .
    • For NVIDIA use vdpau .
    • For AMDGPU driver use radeonsi .
    • You can find the installed drivers in /usr/lib/dri/ . They are used as /usr/lib/dri/$ _drv_video.so .
    • Some drivers are installed several times under different names for compatibility reasons. You can see which by running sha1sum /usr/lib/dri/* | sort .
    • LIBVA_DRIVERS_PATH can be used to overrule the VA-API drivers location.
    • Since version 12.0.1 libva-mesa-driver provides radeonsi instead of gallium .

    Configuring VDPAU

    You can override the driver for VDPAU by using the VDPAU_DRIVER environment variable.

    The correct driver name depends on your setup:

    • You can find the installed drivers in /usr/lib/vdpau/ . They are used as /usr/lib/vdpau/libvdpau_$ .so .
    • Some drivers are installed several times under different names for compatibility reasons. You can see which by running sha1sum /usr/lib/vdpau/* .
    • For hybrid setups (both NVIDIA and AMD), it may be necessary to set the DRI_PRIME environment variable. For more information see PRIME.

    Configuring applications

    Конфигурация

    Для запуска X конфигурация не требуется.

    Полный список опций доступен в документации $ man intel .

    Kernel Mode Setting

    Совет: Если вы наблюдаете проблемы с разрешением экрана, обратитесь к этой странице.

    Kernel Mode Setting (KMS) необходим для запуска X и среды рабочего стола. KMS поддерживается чипсетами Intel, которые используют драйвер i915 DRM включенный по умолчанию. Версии драйвера xf86-video-intel 2.10 и новее больше не поддерживают UMS (за исключением очень старых чипсетов 810 серии), что делает использование KMS обязательным [3] . KMS обычно инициализируется сразу после стадии initramfs. Однако, есть возможность активировать KSM во время стадии initramfs.

    Примечание: Users must remove any deprecated references to vga or nomodeset from boot configuration.

    Для этого добавьте модуль i915 в строку MODULES в файле /etc/mkinitcpio.conf :

    Если вы используете собственный, нестандартный, файл EDID], вам также необходимо вставить его в initramfs:

    Теперь перегенерируйте initramfs:

    Изменения вступят в силу после следующей перезагрузки.

    Установка

    Установите пакет mesa , который предоставляет драйвер DRI для 3D ускорения.

    • Для поддержки 32 битных приложений, установите lib32-mesa из репозитория multilib.
    • Для DDX драйвера (который обеспечивает 2D-ускорение в Xorg), Установите пакет xf86-video-intel . (Не рекомендуется, см. Примечание ниже.)
    • Для поддержке Vulkan (Ivy Bridge и выше), Установите пакет vulkan-intel .

    Установите драйвер VA-API и необходимую библиотеку с помощью пакета libva-intel-driver . На старых видеокартах, это предоставляет драйвер XvMC, который включён в драйвер DDX.

    Настройка

    Названия драйверов по умолчанию угадываются системой, если остутствуют какие-либо другие настройки. Однако они часто не совпадают и не работают. Предполагаемые значения можно просмотреть, выполнив следующую команду:

    В данном случае по умолчанию используется radeonsi для VA-API и VDPAU.

    Примечание: Если используется GDM, выполните вместо этого следующую команду: journalctl -b | grep -iE 'vdpau | dri driver' .

    Настройка VA-API

    Драйвер VA-API можно переопределить с помощью переменной окружения LIBVA_DRIVER_NAME :

      :
      • Укажите i965 , если используется libva-intel-driver .
      • Укажите iHD , если используется intel-media-driver .
      • Укажите nouveau , если используется Nouveau.
      • Укажите vdpau , если используется NVIDIA.
      • Укажите radeonsi , если используется AMDGPU.
      • Укажите fglrx , если используется AMD Catalyst.
      • Установленные драйверы находятся в /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 .

      Корректное название драйвера зависит от конфигурации:

      • Установленные драйверы находятся в /usr/lib/vdpau/ и используются как /usr/lib/vdpau/libvdpau_$ .so .
      • Некоторые драйверы устанавливаются несколько раз под разными именами в целях совместимости. Их список можно увидеть, выполнив команду sha1sum /usr/lib/vdpau/* .
      • В случае с конфигурацией с гибридной графикой (как с NVIDIA, так и с AMD), может потребоваться задать переменную окружения DRI_PRIME=1 . См. статью PRIME для получения более подробной информации.

      Настройка приложений

      Troubleshooting

      Failed to open VDPAU backend

      VAAPI init failed

      An error along the lines of libva: /usr/lib/dri/i965_drv_video.so init failed is encountered. This can happen because of improper detection of Wayland. One solution is to unset $DISPLAY so that mpv, MPlayer, VLC, etc. do not assume it is X11. Another mpv-specific solution is to add the parameter --gpu-context=wayland .

      Video decoding corruption or distortion with AMDGPU driver

      When experiencing video decoding corruption or distortion with AMDGPU driver, set allow_rgb10_configs=false as environment variable or driconf . [3]

      В отличие от драйверов видеокарт от других производителей, таких как Nvidia и AMD, часть драйвера Intel для интегрированных видеокарт встроена в ядро, а другая часть в пакет mesa-utils. Таким образом если вы используете последнюю версию ядра и свежую версию mesa-utils то, скорее всего, вы используете самую свежую версию драйвера Intel.

      В этой статье мы рассмотрим как выполняется установка драйвера Intel в Ubuntu если он не установлен по умолчанию, а также как получить самую последнюю версию.

      Contents

      Советы и рекомендации

      Видео без тиринга (горизонтального разрыва)

      См. отчёт об ошибке за подробной информацией.

      • Данная опция может не работать если SwapbuffersWait выставлена на false .
      • Данная опция может создать дополнительные проблемы в некоторых приложениях, например Super Meat Boy.
      • Данная опция не работает с методом ускорения UXA, только с SNA.

      Отключение вертикальной синхронизации (VSYNC)

      Драйвер intel использует тройную буферизацию для вертикальной синхронизации, что позволяет без потерь в производительности избежать разрывы кадров. Чтобы отключить вертикальную синхронизацию (например, для "бенчмаркинга") создайте файл .drirc в вашей домашней директории со следующим содержимым:

      Не используйте driconf AUR для создания этого файла, так как он выставит неправильное название драйвера.

      Настройка режима масштабирования

      Это может быть полезно для некоторых полноэкранных приложений:

      Где param одно из следующих значений:

      • center : разрешение экрана не будет меняться, масштабирование отключено,
      • full : масштабировать разрешение экрана для использования всего места на экране или
      • full_aspect : максимально масштабировать разрешение экрана, но соблюдать соотношение сторон.

      Если это не сработало, попробуйте:

      Где param это "Full" , "Center" или "Full aspect" .

      Проблема с KMS: консоль ограничена в небольшую площадь

      Если это не сработало, попробуйте выключить TV1 или VGA1 вместо SVIDEO-1.

      Декодирование H.264 на GMA 4500

      Пакет libva-intel-driver предоставляет декодирование MPEG-2 только для GMA 4500 серии видеокарт. Поддержка декодирования H.264 сопровождается в отдельной ветке под названием g45-h264, которой можно воспользоваться установив пакет libva-intel-driver-g45-h264 AUR , доступный в AUR. Однако имейте в виду, что данная поддержка экспериментально и в данный не ведётся активная разработка. Использование VA-API с этим драйвером на GMA 4500 серии видеокарт уменьшит нагрузку на центральный процессор, однако не гарантируется плавное воспроизведение в сравнении с программным декодированием. Тестирование с использованием mplayer показало что использование vaapi для воспроизведения закодированного в H.264 1080p видео снизило нагрузку на процессор, однако воспроизведение происходит с рывками, в то время как воспроизведение 720p работало удовлетворительно [5]. Это подтверждает и опыт других пользователей [6].

      Управление яркостью и гаммой

      Следующий пример демонстрирует использование виртуальную файловую систему /sys для выставления уровня яркости на уровне драйвера. Максимальная яркость указана в файле /sys/class/backlight/intel_backlight/max_brightness . Имейте в виду, что это значение может отличаться в зависимости от разной конфигурации оборудования.

      Яркость также можно выставить используя пакет xorg-xbacklight .

      Вместо абсолютных значений можно использовать инкрементирующие, например:

      Гамму можно выставить используя пакет xorg-xrandr , либо xorg-xgamma . Следующие команды делают одно и то же.

      Выводы

      Вот и все. Теперь вы знаете как выполняется установка драйвера Intel Ubuntu. В отличие от драйверов для Nvidia, в большинстве случаев здесь всё уже установлено. И вам не надо думать как поддерживать актуальную версию этого драйвера в своей системе. Если у вас остались вопросы, спрашивайте в комментариях!

      С тех пор как Intel предоставляет и поддерживает только свободные драйвера, видеокарты Intel graphics работают "из коробки".

      Всеобъемлющий список моделей видеокарт и соответствующих чипсетов и процессоров доступен в английской Википедии.

      Примечание: Основанные на PowerVR видеокарты GMA 3600 серии) не поддерживаются свободными драйверами.

      Contents

      Installation

      Intel

      Intel graphics open-source drivers support VA-API:

      NVIDIA

      Nouveau open-source driver supports both VA-API and VDPAU:

      • GeForce 8 series and newer GPUs up until GeForce GTX 750 are supported by libva-mesa-driver and mesa-vdpau . nouveau-fwAUR firmware package, presently extracted from the NVIDIA binary driver.

      NVIDIA proprietary driver supports via nvidia-utils :

      • VDPAU on GeForce 8 series and newer GPUs;
      • NVDECODE on Fermi and newer GPUs [1];
      • NVENCODE on Kepler and newer GPUs.

      ATI/AMD

      ATI and AMDGPU open-source drivers support both VA-API and VDPAU:

      • VA-API on Radeon HD 2000 and newer GPUs is supported by libva-mesa-driver .
      • VDPAU on Radeon R300 and newer GPUs is supported by mesa-vdpau .

      AMDGPU PRO proprietary driver is built on top of AMDGPU driver and supports both VA-API and VDPAU.

      Translation layers

      Решение проблем

      Ошибка "Failed to open VDPAU backend"

      Установка

      Intel

      Свободные драйверы Intel graphics поддерживают VA-API:

        Серия HD Graphics, начиная с Broadwell(

      NVIDIA

      Свободный драйвер Nouveau поддерживает как VA-API, так и VDPAU:

      • GeForce 8 series и новее (до GeForce GTX 750) поддерживаются libva-mesa-driver и mesa-vdpau . nouveau-fwAUR — пакет с микропрограммой, которая на сегодняшний день извлекается из бинарного драйвера NVIDIA.

      Проприетарный драйвер NVIDIA поддерживает следующие технологии с помощью пакета nvidia-utils :

      • VDPAU на серии GeForce 8 и новее;
      • NVDECODE на Fermi и новее [1];
      • NVENCODE на Kepler и новее.

      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 при её отсутствии в драйвере:

      Проверка

      Аппаратное ускорение, скорее всего, хорошо заработает по умолчанию. Проверить это можно описанными ниже способами.

      Совет: mpv отлично подходит для проверки аппаратного ускорения на практике.

      Проверка VA-API

      Проверьте настройки VA-API, выполнив vainfo (предоставляется пакетом libva-utils ):

      VAEntrypointVLD означает, что видеокарта способна декодировать данный формат, а VAEntrypointEncSlice означает, что данный формат можно кодировать.

      В данном примере используется драйвер i965 :

      Если при выполнении vainfo отображается следующая ошибка:

      Проверка VDPAU

      Установите пакет vdpauinfo , чтобы получить полный отчёт о конфигурации драйвера VDPAU и убедиться, что он загружен корректно:

      Решение проблем

      Проблемы SNA

      Есть несколько движков для ускорения DDX. "UXA" (Архитектура Единого Ускорения) является зрелой базовой, которая была введена для поддержки модели драйвера GEM. Именно в процессе заменены "SNA" (новое ускорение в SandyBridge). Cпособность выбора использовать базовую остается для обратной совместимости.

      SNA — стандартный метод ускорения в xf86-video-intel . Если вы наблюдаете проблемы с SNA, попробуйте переключить на UXA. Для этого нужно создать файл конфигурации X со следующим содержимым:

      Можно также воспользоваться Glamor:

      Font and screen corruption in GTK+ applications (missing glyphs after suspend/resume)

      Should you experience missing font glyphs in GTK+ applications, the following workaround might help. Edit /etc/environment to add the following line:

      Пустой экран во время загрузки системы на этапе "Loading modules"

      Либо можно добавить следующее в параметры ядра:

      Если необходим вывод в VGA, попробуйте следующее:

      X зависает/падает с драйверами intel

      Некоторые проблемы со сбоем X, зависания GPU, или проблемы с зависанием X, могут быть решены путем отключения использования GPU с опцией NoAccel :

      Кроме того, попробуйте отключить 3D-ускорение только с опцией DRI :

      Если у вас есть сбои при

      в файле настроек, в большинстве случаев это может быть исправлено добавлением

      к вашим параметрам загрузки.

      Добавление неопределённых разрешений

      Этот вопрос рассматривается в Xrandr page.

      Проблема цвета

      Примечание: Эта проблема связана с изменениями в ядре 3.9. Эта проблема до сих пор остается в ядре 3.10

      Ядро 3.9 содержит изменения, позволяющие драйверу Intel легко настраивать глубину RGB, что в некоторых случаях может привести к проблемам цвета. Это связано с новым "Автоматическим" режимом на "Broadcast RGB». Можно заставить использовать режим, например, xrandr --output <HDMI> --set "Broadcast RGB" "Full" (замените <HDMI> на соответствующее устройство вывода, проверьте запустив xrandr ). Вы можете добавить его в свой .xprofile и сделать его исполняемым, чтобы запускать команду, прежде чем он запустит графический режим.

      Примечание: Некоторые телевизоры могут отображать только цвета из диапазона 16-255, поэтому установка на Full вызовет ограничение цвета в диапазоне 0-15, так что лучше оставить его в автоматическом режиме, который будет автоматически определять необходимость сокращать цветовое пространство для телевизора.

      Также есть и другие связанные с ними проблемы, которые могут быть исправлены редактированием регистров GPU. Больше информации можно найти [7] и [8].

      Подсветка не регулируется

      После возобновления из режима ожидания, горячие клавиши для изменения яркости экрана не работают. Использование следующих параметров ядра потенциально может решить проблему.

      Устройствам Samsung с гибридной графикой (таким как 770Z5E) нужно указать acpi_backlight=video в качестве параметра ядра, при использовании ядра >= 3.17

      Либо в дополнение к вышеуказанному параметру, либо по своей инициативе, добавьте один из следующих двух параметров:

      Другой доступный параметр:

      Если не один из них не решает проблему, отредактируйте или создайте /etc/X11/xorg.conf.d/20-intel.conf со следующим содержимым:

      При использовании ускорения SNA, как упоминалось выше, создайте файл следующим образом:

      Отключение сжатия буфера кадров

      На некоторых картах, таких как Intel Corporation Mobile 4 Series Chipsets, включение сжатия буфера кадров в результате приведёт к потоку ошибок:

      Искажение/Зависание в Chromium и Firefox

      Если у вас проявляются искажения или зависания в Chromium и/или Firefox поменяйте AccelMethod на "uxa"

      Проблема с искажениями в Chromium в Gnome-shell на sna решается включением настройки "Использовать системные рамки и строку заголовка".

      Розовые и зелёные артефакты на видео или выводе Веб-камеры

      Ядро сбоит с ядрами 4.0+ на чипах Broadwell/Core-M

      Через несколько секунд после запуска X/Wayland машина зависает и в логе journalctl будет описан крах ядра ссылающийся на графику Intel, как показано ниже:

      Это может быть исправлено путем отключения поддержки execlist, которая была изменена по умолчанию на ядре с версии 4.0. Добавьте следующий параметр ядра:

      Эта поломка с ядрами версии меньше 4.0.5.

      Драйвер не работает на чипах Intel Skylake

      Аппаратное ускорение видео (англ.) позволяет выполнять операции кодирования и декодирования видео на стороне видеокарты, разгружая CPU и экономя энергию.

      Существуют несколько реализаций этой технологии на Linux:

        (VA-API) — разработанная Intel спецификация и свободная библиотека, предоставляющая аппаратное ускорение кодирования и декодирования видео. (VDPAU) — разработанная NVIDIA свободная библиотека и API для переноса части процесса декодирования видео и его постобработки на сторону GPU. — проприетарные API аппаратного ускорения, используемые в таких поколениях GPU от NVIDIA, как Fermi, Kepler, Maxwell и Pascal.

      Читайте также: