web-dev-qa-db-fra.com

VAAPI et plusieurs cartes vidéo

J'ai récemment reçu un nouvel Inspiron 5548 (en fait, d'occasion, mais nouveau pour moi) avec un processeur Intel Core i7-5500U et une carte AMD Radeon R7 M260/M265.

Tout fonctionne bien avec mon Ubuntu 17.04 (pré-version), mais j'ai un "problème" qui était aussi présent depuis que j'ai installé Ubuntu 16.10, à savoir:

vainfo ne me montre que des informations sur ma carte graphique Intel, mais pas sur mon autre carte. Je pense que tous les packages sont installés et que les pilotes vaapi suivants sont installés:

$ 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

Voici la sortie de vainfo, qui récupère ma carte intégrée 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

Lorsque je demande la sortie à l'aide d'autres pilotes, voici ce que je reçois:

$ 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

Un peu de contexte sur le matériel et les logiciels

La sortie de inxi est la suivante:

# 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

Même après avoir beaucoup cherché sur Google, je ne trouvais pas comment voir les informations VAAPI du côté AMD de mon système et j'aimerais bien découvrir comment le découvrir (en particulier pour le transcodage de choses avec ffmpeg).

Informations supplémentaires

Après le conseil utile de @ Brainiarc7, l’utilisation du paramètre de variable DRI_PRIME=1 modifie considérablement la sortie:

$ 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

Le matériel est-il utilisé même si le pilote est mesa gallium vaapi ou s'agit-il d'un décodeur logiciel/d'espace réservé? C'est un progrès, de toute façon. Je trouve surprenant que seuls quelques profils/points d’entrée soient pris en charge (mais c’est peut-être le pilote qui n’expose pas si, effectivement, le matériel est utilisé).

Je fournirai volontiers toute information supplémentaire jugée nécessaire.

4
rbrito

Pour le processeur graphique AMD, vous devez appeler vainfo comme indiqué ci-dessous:

DRI_PRIME=1 LIBVA_DRIVER_NAME=radeonsi vainfo 

Maintenant, imprimez le résultat et voyez si quelque chose change.

1
林正浩