VAAPI и несколько видеокарт
Недавно я получил новый (на самом деле, подержанный, но новый для меня) Inspiron 5548 с процессором Intel Core i7-5500U, который также имеет карту AMD Radeon R7 M260/M265.
Все отлично работает с моей Ubuntu 17.04 (предварительная версия), но у меня есть "проблема", которая также присутствовала с тех пор, как я впервые установил Ubuntu 16.10, а именно:
vainfo
показывает только информацию о моей видеокарте Intel, но не касается другой моей карты. Я считаю, что у меня установлены все пакеты и установлены следующие драйверы vaapi:
$ ll /usr/lib/x86_64-linux-gnu/dri/*_drv_video.so
-rw-r--r-- 1 root root 2113216 Nov 10 17:34 /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
-rw-r--r-- 3 root root 4416200 Feb 6 05:47 /usr/lib/x86_64-linux-gnu/dri/nouveau_drv_video.so
lrwxrwxrwx 1 root root 18 May 11 2016 /usr/lib/x86_64-linux-gnu/dri/nvidia_drv_video.so -> vdpau_drv_video.so
-rw-r--r-- 3 root root 4416200 Feb 6 05:47 /usr/lib/x86_64-linux-gnu/dri/r600_drv_video.so
-rw-r--r-- 3 root root 4416200 Feb 6 05:47 /usr/lib/x86_64-linux-gnu/dri/radeonsi_drv_video.so
lrwxrwxrwx 1 root root 18 May 11 2016 /usr/lib/x86_64-linux-gnu/dri/s3g_drv_video.so -> vdpau_drv_video.so
-rw-r--r-- 1 root root 97224 May 11 2016 /usr/lib/x86_64-linux-gnu/dri/vdpau_drv_video.so
Вот вывод vainfo
, который забирает мою интегрированную карту Intel:
$ vainfo
libva info: VA-API version 0.39.4
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/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) Broadwell - 1.7.3
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Simple : VAEntrypointEncSlice
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointEncSlice
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileH264MultiviewHigh : VAEntrypointVLD
VAProfileH264MultiviewHigh : VAEntrypointEncSlice
VAProfileH264StereoHigh : VAEntrypointVLD
VAProfileH264StereoHigh : VAEntrypointEncSlice
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAProfileNone : VAEntrypointVideoProc
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileVP8Version0_3 : VAEntrypointVLD
Когда я запрашиваю вывод с помощью других драйверов, это то, что я получаю:
$ LIBVA_DRIVER_NAME=radeonsi vainfo
libva info: VA-API version 0.39.4
libva info: va_getDriverName() returns 0
libva info: User requested driver 'radeonsi'
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_0_39
ilo: driver missing
ilo: driver missing
libva error: /usr/lib/x86_64-linux-gnu/dri/radeonsi_drv_video.so init failed
libva info: va_openDriver() returns 2
vaInitialize failed with error code 2 (resource allocation failed),exit
Некоторый контекст об аппаратном и программном обеспечении
Вывод из inxi следующий:
# inxi -v2
System: Host: inspiron-5548 Kernel: 4.10.0-9-generic x86_64 (64 bit) Desktop: MATE 1.17.2
Distro: Ubuntu Zesty Zapus (development branch)
Machine: Device: portable System: Dell product: Inspiron 5548 v: A07 serial: 6B7H542
Mobo: Dell model: 0YDTG3 v: A00 serial: .6B7H542.BR1183055L0209. UEFI: Dell v: A07 date: 06/23/2016
Battery BAT1: charge: 37.3 Wh 100.0% condition: 37.3/38.4 Wh (97%)
CPU: Dual core Intel Core i7-5500U (-HT-MCP-) speed/max: 799/3000 MHz
Graphics: Card-1: Intel HD Graphics 5500
Card-2: Advanced Micro Devices [AMD/ATI] Topaz XT [Radeon R7 M260/M265 / M340/M360 / M440/M445]
Display Server: X.org 1.18.4 drivers: modesetting,ati,amdgpu (unloaded: fbdev,vesa,radeon)
tty size: 190x49 Advanced Data: N/A for root
Network: Card-1: Realtek RTL8101/2/6E PCI Express Fast/Gigabit Ethernet controller driver: r8169
Card-2: Intel Wireless 7265 driver: iwlwifi
Drives: HDD Total Size: 1000.2GB (16.4% used)
ID-1: model: ST1000LM014
Info: Processes: 232 Uptime: 7 days Memory: 2374.9/15960.3MB Client: Shell (bash) inxi: 2.3.8
Даже после того, как я много гуглил, я не мог найти, как посмотреть информацию о VAAPI на стороне AMD моей системы, и мне очень хотелось бы узнать, как это обнаружить (особенно для перекодирования с помощью ffmpeg).
Дополнительная информация
После полезной подсказки @Brainiarc7, используя переменную DRI_PRIME=1
значительно меняет вывод:
$ DRI_PRIME=1 LIBVA_DRIVER_NAME=radeonsi vainfo
libva info: VA-API version 0.39.4
libva info: va_getDriverName() returns 0
libva info: User requested driver 'radeonsi'
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/radeonsi_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: mesa gallium vaapi
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileNone : VAEntrypointVideoProc
Используется ли аппаратное обеспечение, хотя драйвер mesa gallium vaapi
или это программный декодер / заполнитель? В любом случае, это прогресс. Я нахожу удивительным, что есть только несколько поддерживаемых профилей / точек входа (но это, возможно, тот драйвер, который не показывает, если действительно используется оборудование).
Я с удовольствием предоставлю любую дополнительную информацию, которая будет сочтена необходимой.
1 ответ
Для AMD GPU вам нужно вызвать vainfo, как показано ниже:
DRI_PRIME=1 LIBVA_DRIVER_NAME=radeonsi vainfo
Теперь распечатайте вывод и посмотрите, что изменится.