Package Details: intel-hybrid-codec-driver 2.0.0.r169.edead0c-4

Git Clone URL: https://aur.archlinux.org/intel-hybrid-codec-driver.git (read-only, click to copy)
Package Base: intel-hybrid-codec-driver
Description: Libva support for partially hardware accelerated encode and decode on Haswell and newer
Upstream URL: https://01.org/linuxmedia/vaapi
Licenses: MIT
Submitter: DetMittens
Maintainer: mortzu
Last Packager: mortzu
Votes: 30
Popularity: 1.70
First Submitted: 2017-07-16 18:38 (UTC)
Last Updated: 2021-03-03 18:30 (UTC)

Latest Comments

lavilao commented on 2022-03-21 11:14 (UTC)

removing the vadriverinit-fix.patch from the pkgbuild fixed it for me, I have a braswell cpu if that matters

Drommer commented on 2022-03-21 10:18 (UTC) (edited on 2022-03-21 10:26 (UTC) by Drommer)

Weird. I have a Haswell generation video card (HD 4600) and everything works fine. Now I tried to re-download and build with "makepkg" and it works. Only sha256sums for the new patch needs to be changed. Maybe you did not apply the patch on the first link?

P.S. It also makes sense to remove the line 24 (install=${pkgname}.install) which is no longer required.

lavilao commented on 2022-03-20 14:25 (UTC)

the new pkgbuild does not work, after downloading it it shows this ==> ERROR: PKGBUILD contiene caracteres CRLF y no puede ser usado. and after converting it and compiling it it shows this vainfo  ✔ /usr/lib/dri/hybrid_drv_video.so has no function __vaDriverInit_0_32 Not using hybrid_drv_video.so vainfo: VA-API version: 1.13 (libva 2.13.0) vainfo: Driver version: Intel i965 driver for Intel(R) CherryView - 2.4.1 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 VAProfileJPEGBaseline : VAEntrypointEncPicture VAProfileVP8Version0_3 : VAEntrypointVLD VAProfileVP8Version0_3 : VAEntrypointEncSlice VAProfileHEVCMain : VAEntrypointVLD

Drommer commented on 2022-03-18 11:21 (UTC)

Patch to fix bug with x11: https://pastebin.com/0X9Am4aW New PKGBUILD: https://pastebin.com/WNY7MMtr

Swaroop34 commented on 2021-11-28 19:03 (UTC) (edited on 2021-11-28 19:25 (UTC) by Swaroop34)

Hey, i tried installing but got "ERROR: A Failure occured in build()". The problem seems to be libtool. I have this before the ERROR.

libtool: Version mismatch error. This is libtool 2.4.6, but the definition of this LT_INIT comes from libtool 2.4.6.42-b88ce-dirty. You should recreate aclocal.m4 with macros from libtool 2.4.6 and run autoconf again.

Please check this error. Thanks in advance.

lavilao commented on 2021-10-24 14:57 (UTC)

did you installed libva-intel-driver-hybrid? otherwise it wont work

arun321 commented on 2021-10-23 14:19 (UTC)

I don't get vp9 decoding support

LIBVA_DRIVER_NAME=i965 vainfo /usr/lib/dri/hybrid_drv_video.so has no function __vaDriverInit_0_32 Not using hybrid_drv_video.so

lavilao commented on 2021-10-02 00:50 (UTC)

Hi I have an intel celeron n3050 (braswell) and it hangs 2 of every 5 vp9 videos when using vaapi, is there a way to prevent this?

greencopper commented on 2021-01-22 14:36 (UTC)

It doesn't compile:

collect2: error: ld returned 1 exit status
make[3]: *** [Makefile:680: hybrid_drv_video.la] Error 1
make[3]: Leaving directory '/home/foo/.cache/yay/intel-hybrid-codec-driver/src/intel-hybrid-driver/src'
make[2]: *** [Makefile:974: all-recursive] Error 1
make[2]: Leaving directory '/home/foo/.cache/yay/intel-hybrid-codec-driver/src/intel-hybrid-driver/src'
make[1]: *** [Makefile:595: all] Error 2
make[1]: Leaving directory '/home/foo/.cache/yay/intel-hybrid-codec-driver/src/intel-hybrid-driver/src'
make: *** [Makefile:418: all-recursive] Error 1
==> ERROR: A failure occurred in build().
    Aborting...
error making: intel-hybrid-codec-driver

The alternative older package "intel-hybrid-codec-driver-gcc10" compiles fine.

randomgeek78 commented on 2020-09-12 12:34 (UTC) (edited on 2020-09-12 12:36 (UTC) by randomgeek78)

Some clarifications for those finding this package and the other one (libva-intel-driver-hybrid) confusing -

This package provides /usr/lib/dri/hybrid_drv_video.so which can be used like so-

$ LIBVA_DRIVER_NAME=hybrid vainfo
vainfo: VA-API version: 1.8 (libva 2.8.0)
vainfo: Driver version: Intel hybrid driver - 2.0.0
vainfo: Supported profile and entrypoints
      VAProfileVP9Profile0            : VAEntrypointVLD

It can also be used by the i965 (/usr/lib/dri/i965_drv_video.so) driver provided by libva-intel-driver-hybrid like so-

$ LIBVA_DRIVER_NAME=i965 vainfo
vainfo: VA-API version: 1.8 (libva 2.8.0)
vainfo: Driver version: Intel i965 driver for Intel(R) Broadwell - 2.4.1
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
      VAProfileVP9Profile0            : VAEntrypointVLD

Note that the i965_drv_video.so provided by the vanilla libva-intel-driver will not be able to use this package.

In order to properly get over libva error: /usr/lib/dri/hybrid_drv_video.so has no function __vaDriverInit_1_0 error, I had to put in the following patch -

$ cat vadriverinit-fix.patch
--- intel-hybrid-driver/src/media_drv_init.c
+++ intel-hybrid-driver-new/src/media_drv_init.c
@@ -2764,9 +2764,9 @@ va_driver_init (VADriverContextP ctx)
   return ret;
 }

-VAStatus DLL_EXPORT __vaDriverInit_0_34 (VADriverContextP ctx);
+VAStatus DLL_EXPORT VA_DRIVER_INIT_FUNC (VADriverContextP ctx);
 VAStatus
-__vaDriverInit_0_34 (VADriverContextP ctx)
+VA_DRIVER_INIT_FUNC (VADriverContextP ctx)
 {
   VAStatus ret = VA_STATUS_ERROR_UNKNOWN;

But I don't think it matters since I don't think we should be using the hybrid driver directly but instead through i965 that is supplied by the libva-intel-driver-hybrid.

randomgeek78 commented on 2020-09-12 10:19 (UTC) (edited on 2020-09-12 10:20 (UTC) by randomgeek78)

I continue to have the issue mentioned by DetMittens in the first post to this AUR package. My hybrid_drv_video.so gets compiled with __vaDriverInit_0_34 instead of __vaDriverInit_1_0:

$ strings hybrid_drv_video.so | grep vaDriverInit
__vaDriverInit_0_34

As a result, vainfo cannot successfully load this drv:

$ LIBVA_DRIVER_NAME=hybrid vainfo
libva error: /usr/lib/dri/hybrid_drv_video.so has no function __vaDriverInit_1_0

I could not parse the solution from looking at all the commands in this AUR and also externally.

Any ideas?

dbermond commented on 2020-07-27 01:10 (UTC)

It currently fails to build with gcc10 because gcc10 defaults to use -fno-common.

Can be fixed by applying this patch from upstream PR #28: https://github.com/intel/intel-hybrid-driver/commit/821f871296629ffab451faea5134abf6f2d1166f.patch

dude commented on 2019-07-23 20:51 (UTC)

Can you add 'git' to makedepends please? Otherwise the build fails when git is not installed.

wan109020 commented on 2019-05-20 15:34 (UTC) (edited on 2019-05-22 15:26 (UTC) by wan109020)

This codec seems to work way better under Intel Clear Kernel. On my machine, rendering 1080p Youtube Video with chromium-vaapi only took ~5% under Intel Clear Kernel, just like it gots full hw-acceleration.

wan109020 commented on 2018-11-08 17:44 (UTC)

It's working fine for me.

I am using a skylake CPU (Intel Corei7-6560U)

Playing YouTube in VP9 with chromium-vaapi is smooth, <10%CPU is used and no frame drops with libva-intel-driver-hybrid and this package installed

Without this package, ~30%is used when playing 1080p vp9 youtube and there's occasional frame drops

DetMittens commented on 2018-01-21 11:45 (UTC)

Unfortunately that sounds like the hardware just isn't fast enough, even with this driver (depending on which graphics generation) a lot of the decoding is still done in software. For example the Braswell nuc I have can do vp9 decoding but past ~720p30 it stutters and drops frames.

I've updated the package to make the driver at least partially usable for now and included a warning when upgrading from a previous version.

Burdeman commented on 2018-01-21 01:45 (UTC) (edited on 2018-01-21 01:46 (UTC) by Burdeman)

After adding --disable-x11 No more error and I can see the VP9 profile.

$ vainfo libva info: VA-API version 1.0.0 libva info: va_getDriverName() returns 0 libva info: Trying to open /usr/lib/dri/i965_drv_video.so libva info: Found init function __vaDriverInit_1_0 libva info: va_openDriver() returns 0 ................... VAProfileVP9Profile0 : VAEntrypointVLD

Chromium still runs like a dog on VP9 video (e.g. Youtube) so don't know whats going on there. It is indicating GPU decoding in use though.

Back to forcing h264 for now...

DetMittens commented on 2018-01-20 17:20 (UTC)

I'm not sure what is causing the driver to depend on the old version of libva-x11, as all the configures seem correct to me.

When I add --disable-x11 to this package's configure the resulting driver is able to load and I was able to use VP9 decoding on BSW successfully in mpv. Adding this flag means that when in an X11 session vaapi decoding of hybrid codecs can only be done via drm however this way is recommended over vaapi via X11 AFAIK

If anyone is able to test this package with --disable-x11 flag please let me know the outcome because if it works then I'll add it to the PKGBUILD until a better solution can be found.

Burdeman commented on 2018-01-20 15:18 (UTC) (edited on 2018-01-20 15:19 (UTC) by Burdeman)

init error on hybrid_drv_video.so

$ vainfo libva info: VA-API version 1.0.0 libva info: va_getDriverName() returns 0 libva info: Trying to open /usr/lib/dri/i965_drv_video.so libva info: Found init function __vaDriverInit_1_0 failed to open /usr/lib/dri/hybrid_drv_video.so Failed to wrapper hybrid_drv_video.so ...

strace reveals its looking for libva-x11.so.1:

<hr>

openat(AT_FDCWD, "/usr/lib/tls/haswell/x86_64/libva-x11.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) stat("/usr/lib/tls/haswell/x86_64", 0x7ffd8640d1e0) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/usr/lib/tls/haswell/libva-x11.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) stat("/usr/lib/tls/haswell", 0x7ffd8640d1e0) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/usr/lib/tls/x86_64/libva-x11.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) stat("/usr/lib/tls/x86_64", 0x7ffd8640d1e0) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/usr/lib/tls/libva-x11.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) stat("/usr/lib/tls", 0x7ffd8640d1e0) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/usr/lib/haswell/x86_64/libva-x11.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) stat("/usr/lib/haswell/x86_64", 0x7ffd8640d1e0) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/usr/lib/haswell/libva-x11.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) stat("/usr/lib/haswell", 0x7ffd8640d1e0) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/usr/lib/x86_64/libva-x11.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) stat("/usr/lib/x86_64", 0x7ffd8640d1e0) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/usr/lib/libva-x11.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) stat("/usr/lib", {st_mode=S_IFDIR|0755, st_size=135168, ...}) = 0

...

argen14 commented on 2018-01-08 04:16 (UTC)

I guess I am having same problem as @Detmittens . I have i5-6200u skylake graphics. After installing this package I've re-compiled libva-intel-driver

$ yaourt -Sb libva-intel-driver I changed the lines of PKGBUILD:

./configure --enable-hybrid-codec \ --prefix=/usr

Seems libva tries to load the driver but fails:

ibva info: VA-API version 1.0.0 libva info: va_getDriverName() returns 0 libva info: Trying to open /usr/lib/dri/i965_drv_video.so libva info: Found init function __vaDriverInit_1_0 /usr/lib/dri/hybrid_drv_video.so init failed Failed to wrapper hybrid_drv_video.so libva info: va_openDriver() returns 0 vainfo: VA-API version: 1.0 (libva 2.0.0) vainfo: Driver version: Intel i965 driver for Intel(R) Skylake - 2.0.0 vainfo: Supported profile and entrypoints VAProfileMPEG2Simple : VAEntrypointVLD VAProfileMPEG2Simple : VAEntrypointEncSlice VAProfileMPEG2Main : VAEntrypointVLD VAProfileMPEG2Main : VAEntrypointEncSlice VAProfileH264ConstrainedBaseline: VAEntrypointVLD VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP VAProfileH264ConstrainedBaseline: VAEntrypointFEI VAProfileH264Main : VAEntrypointVLD VAProfileH264Main : VAEntrypointEncSlice VAProfileH264Main : VAEntrypointEncSliceLP VAProfileH264Main : VAEntrypointFEI VAProfileH264High : VAEntrypointVLD VAProfileH264High : VAEntrypointEncSlice VAProfileH264High : VAEntrypointEncSliceLP VAProfileH264High : VAEntrypointFEI VAProfileH264MultiviewHigh : VAEntrypointVLD VAProfileH264MultiviewHigh : VAEntrypointEncSlice VAProfileH264StereoHigh : VAEntrypointVLD VAProfileH264StereoHigh : VAEntrypointEncSlice VAProfileVC1Simple : VAEntrypointVLD VAProfileVC1Main : VAEntrypointVLD VAProfileVC1Advanced : VAEntrypointVLD VAProfileNone : VAEntrypointVideoProc VAProfileJPEGBaseline : VAEntrypointVLD VAProfileJPEGBaseline : VAEntrypointEncPicture VAProfileVP8Version0_3 : VAEntrypointVLD VAProfileVP8Version0_3 : VAEntrypointEncSlice VAProfileHEVCMain : VAEntrypointVLD VAProfileHEVCMain : VAEntrypointEncSlice

Any ideas to try? Thanks

DetMittens commented on 2017-11-13 19:03 (UTC)

I'm still having problems updating but I guess something must be conflicting. I'm going to update the package with your PKGBUILD modifications since its working on my braswell nuc but not on my skylake system. Guess its time for me to setup a proper chroot to build in. Thanks for the help

uth commented on 2017-11-13 18:06 (UTC) (edited on 2017-11-13 18:12 (UTC) by uth)

Thanks DetMittens, I updated your PKGBUILD and it works well on Haswell. // --- PKGBUILD.old 2017-11-14 02:39:02.221000628 +0900 +++ PKGBUILD 2017-11-14 02:39:29.670453649 +0900 @@ -12,8 +12,10 @@ # the libva-intel-driver-hybrid package from the AUR pkgname=intel-hybrid-codec-driver +_gitroot="git+https://github.com/01org/intel-hybrid-driver.git" _gitname=intel-hybrid-driver -pkgver=1.0.2 +_pkgver=2.0.0 +pkgver=$_pkgver.r169.edead0c pkgrel=1 pkgdesc='Libva support for VP9 decode and VP8 encode on Skylake and Braswell' arch=('i686' 'x86_64') @@ -21,21 +23,26 @@ license=('MIT') depends=('libva' 'libcmrt') optdepends=('libva-intel-driver-hybrid: To be able to use the full hw codecs with hybrid codecs') -source=("${_gitname}-${pkgver}.tar.gz::https://github.com/01org/${_gitname}/archive/${pkgver}.tar.gz") -sha256sums=('16cd66872e8043ce6c0e9a016a043c460e8a180fdc520f31c1f97ffef7828d7b') +source=("$_gitname::$_gitroot") +sha256sums=('SKIP') + +pkgver() { + cd ${srcdir}/$_gitname + printf $_pkgver".r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} prepare() { - cd ${srcdir}/${_gitname}-${pkgver} + cd ${srcdir}/${_gitname} autoreconf -v --install } build() { - cd ${srcdir}/${_gitname}-${pkgver} + cd ${srcdir}/${_gitname} ./configure --prefix=/usr make } package() { - cd ${srcdir}/${_gitname}-${pkgver} + cd ${srcdir}/${_gitname} make install DESTDIR=${pkgdir} } // $ yaourt -Sb libva-intel-driver I changed the lines of PKGBUILD: > ./configure --enable-hybrid-codec \ > --prefix=/usr $ vainfo | grep VP9 libva info: VA-API version 1.0.0 VAProfileVP9Profile0 : VAEntrypointVLD

DetMittens commented on 2017-11-13 16:58 (UTC)

There is currently a bug in this package or libcmrt which causes the resulting driver to reference __vaDriverInit_0_34 instead of __vaDriverInit_1_0. I think the problem is in libcmrt as it hasn't been updated to libva 2.0.0 I'm trying to find a fix and will update as soon as possible.