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

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: DetMittens
Last Packager: DetMittens
Votes: 23
Popularity: 0.65
First Submitted: 2017-07-16 18:38
Last Updated: 2019-12-21 22:01

Dependencies (4)

Required by (2)

Sources (1)

Latest Comments

1 2 Next › Last »

randomgeek78 commented on 2020-09-12 12:34

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

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

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

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

wan109020 commented on 2019-05-20 15:34

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

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

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

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

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

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

...