FS#44312 - [libva-vdpau-driver] Create a symlink for Nouveau

Attached to Project: Arch Linux
Opened by Daniel (weirddan455) - Monday, 23 March 2015, 11:32 GMT
Last edited by freswa (frederik) - Tuesday, 24 March 2020, 18:58 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Ionut Biru (wonder)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 2
Private No

Details

We already have symlinks for the proprietary Nvidia driver and for the S3 driver but Nouveau is missing and symlinking to this driver is the only way I've found to get VA-API to work.

To reproduce:

1. Start vlc from console
2. Go to Tools -> Preferences -> Input/Codecs
3. Change Hardware-accelerated decoding to "VA-API video decoder via X11"
4. Play a video that uses a codec which can be hardware accelerated (H.264 for example)

Note the following error:

libva info: VA-API version 0.37.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/dri/nouveau_drv_video.so
libva info: va_openDriver() returns -1
[00007f4f04049348] vaapi_x11 generic error: Failed to initialize the VAAPI device

Now:

cd /usr/lib/dri
ln -s vdpau_drv_video.so nouveau_drv_video.so

And it works:

libva info: VA-API version 0.37.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/dri/nouveau_drv_video.so
libva info: Found init function __vaDriverInit_0_35
libva info: va_openDriver() returns 0
[00007f69c0ed5fc8] avcodec decoder: Using Splitted-Desktop Systems VDPAU backend for VA-API - 0.7.4 for hardware decoding.

Note that I also tried symlinking to gallium_drv_video.so from libva-mesa-driver but that did not work (not even sure what, if any, cards that driver is good for anymore.)
This task depends upon

Closed by  freswa (frederik)
Tuesday, 24 March 2020, 18:58 GMT
Reason for closing:  None
Additional comments about closing:  This seems pretty stalled to me. If it's still an issue, please fill a re-open request. Thank you :)
Comment by Daniel (weirddan455) - Monday, 23 March 2015, 11:44 GMT
You can also reproduce with the "vainfo" command from the "libva" package if you don't have VLC.

Without symlink:

$ vainfo
libva info: VA-API version 0.37.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/dri/nouveau_drv_video.so
libva info: va_openDriver() returns -1
vaInitialize failed with error code -1 (unknown libva error),exit

With symlink:

$ vainfo
libva info: VA-API version 0.37.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/dri/nouveau_drv_video.so
libva info: Found init function __vaDriverInit_0_35
libva info: va_openDriver() returns 0
vainfo: VA-API version: 0.37 (libva 1.5.0)
vainfo: Driver version: Splitted-Desktop Systems VDPAU backend for VA-API - 0.7.4
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileMPEG4Simple : VAEntrypointVLD
VAProfileMPEG4AdvancedSimple : VAEntrypointVLD
VAProfileH264Baseline : VAEntrypointVLD
VAProfileH264Main : VAEntrypointVLD
VAProfileH264High : VAEntrypointVLD
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
Comment by Doug Newgard (Scimmia) - Sunday, 10 May 2015, 15:06 GMT
Similar request, but includes other drivers:  FS#44928 
Comment by Juan Simón (j1simon) - Wednesday, 18 May 2016, 14:36 GMT
Same problem.
Comment by U (Gusar) - Wednesday, 18 May 2016, 15:46 GMT
Nouveau has native VAAPI support now (though no idea if it's in mesa-11.2 already, but mesa-11.3 will be released soon in that one will definitely have it), so there's no reason to use wrappers (libva-vdpau-driver is a wrapper).

VLC is much better off with VDPAU anyway, due to the lack of zero-copy VAAPI support, so if your driver supports VDPAU (nouveau does), use that.

Basically: don't use wrappers, and configure VLC to use VDPAU.

Loading...