desktop-packages team mailing list archive
-
desktop-packages team
-
Mailing list archive
-
Message #154083
[Bug 1481832] Re: VA-API implementation for gallium missing
> In reaction to Robert Hooker about performance.
> Did some benchmarks with "mpv" and 1080i h264 transport stream footage trying all three possible acc.
> backends on [Radeon HD 6320].
>
> *vdpau (native)
> *Splitte d-Desktop Systems VDPAU backend for VA-API
> *mesa gallium vaapi
> All of them seem to perform equally maybe some 1-5% difference.
> Maybe because there isn't real 'vdpau' on AMD so its implementation of vdpau
> is like the other VAAPI ones using the same optimize tricks
> (combination of hardwaredecoder/shaders/etc/gpu offload)?
Does the mesa gallium vaapi also supports the UVD video decoding in
hardware as the vdpau driver does?
I just tested the vdpau and vaapi->vdpau against CPU only decoding
(AMD64 dualcore) on a Radeon HD 3200 (RS780) playing a 1080i h264
sample.
I got a huge difference of less than 10% cpu load for vdpau to more than
100% load for CPU only decoding (didn't find vaapi option for mpv).
Also the vaapi->vdpau backend helped to reduce the cpu load for vlc
2.1.x using --avcodec-hw=vaapi from 100% to 35%. (only vlc from 2.2.x
has native vdpau support).
I guess I will also have a look at the mesa gallium vaapi.
--
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to mesa in Ubuntu.
https://bugs.launchpad.net/bugs/1481832
Title:
VA-API implementation for gallium missing
Status in mesa package in Ubuntu:
Confirmed
Bug description:
[needs-packaging] mesa
Please include "gallium_drv_video.so" which is a native va-api state tracker for mesa(gallium).
URL: http://mesa3d.sourceforge.net/
URL: http://freedesktop.org/wiki/Software/vaapi/ #intel/vdpau
License: http://www.mesa3d.org/license.html
Notes:
Currently (as of today) in ubuntu 15.10 nightly amd64, va-api(vaapi) on AMD/Ati radeon opensource display hardware is using a vdpau backend 0.7.4 by Splitted-Desktop Systems (wrapper) on gallium r600. Although its possible and probably preferred (better performance less copying) to use a native implementation which mesa(gallium) 10.4 and higher delivers in a form of a va-api state tracker.
vainfo #current default setup vdpau backend
libva info: VA-API version 0.38.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/r600_drv_video.so
libva info: Found init function __vaDriverInit_0_37
libva info: va_openDriver() returns 0
vainfo: VA-API version: 0.38 (libva 1.6.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
VAProfileVC1Advanced : VAEntrypointVLD
The preferred setup needs that "gallium_drv_video.so" binary which is
currently unavailable in ubuntu and debian. As an example I added a
package/binary from archlinux. Copying the gallium_drv_video.so to
/usr/lib/x86_64-linux-gnu/dri/ and symlinking(correcting) the
libLLVM-3.6.so to arch-linux default /usr/lib/ location and exporting
a variable was enough to make it work!
https://www.archlinux.org/packages/extra/x86_64/libva-mesa-driver/
#example by archlinux
export LIBVA_DRIVER_NAME=gallium
vainfo #preferred setup using gallium va-api from arch-linux (symlinked libLLVM-3.6.so to /usr/lib)
libva info: VA-API version 0.38.0
libva info: va_getDriverName() returns 0
libva info: User requested driver 'gallium'
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/gallium_drv_video.so
libva info: Found init function __vaDriverInit_0_38
libva info: va_openDriver() returns 0
vainfo: VA-API version: 0.38 (libva 1.6.0)
vainfo: Driver version: mesa gallium vaapi
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileMPEG4Simple : VAEntrypointVLD
VAProfileMPEG4AdvancedSimple : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAProfileH264Baseline : VAEntrypointVLD
VAProfileH264Main : VAEntrypointVLD
VAProfileH264High : VAEntrypointVLD
I guess this binary "gallium_drv_video.so" might be available as a
compile flag in the current mesa implementation... intel and vdpau has
their own current implementation in a separate libva branch
http://cgit.freedesktop.org/vaapi/libva/ ?
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/mesa/+bug/1481832/+subscriptions