broxton GPU 上的 VAAPI

broxton GPU 上的 VAAPI

我正在尝试让 vaapi 加速在 Ubuntu 16.10 上为 Celeron J3455 工作。我安装了驱动程序,但当我运行 vainfo 时出现此错误:

ubuntu@ubuntu:~$ vainfo
libva info: VA-API version 0.39.2
libva info: va_getDriverName() returns -1
libva error: va_getDriverName() failed with unknown libva error,driver_name=(null)
vaInitialize failed with error code -1 (unknown libva error),exit

如果我手动设置驱动程序,我会得到以下结果:

ubuntu@ubuntu:~$ LIBVA_DRIVER_NAME=i965 vainfo
libva info: VA-API version 0.39.2
libva info: va_getDriverName() returns -1
libva info: User requested driver 'i965'
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_39
vainfo: intel_driver.c:100: intel_driver_init: Assertion `VA_CHECK_DRM_AUTH_TYPE(ctx, VA_DRM_AUTH_DRI1) || VA_CHECK_DRM_AUTH_TYPE(ctx, VA_DRM_AUTH_DRI2) || VA_CHECK_DRM_AUTH_TYPE(ctx, VA_DRM_AUTH_CUSTOM)' failed.
Aborted (core dumped)

使用 vainfo --display drm 我得到了我期望的结果

ubuntu@ubuntu:~$ vainfo --display drm
libva info: VA-API version 0.39.2
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.1)
vainfo: Driver version: Intel i965 driver for Intel(R) Broxton - 1.7.1
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointVLD
      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
      VAProfileHEVCMain               : VAEntrypointEncSlice
      VAProfileHEVCMain10             : VAEntrypointVLD
      VAProfileVP9Profile0            : VAEntrypointVLD

如何让硬件加速发挥作用?

任何帮助都将不胜感激。谢谢!

答案1

相同的硬件(J3455) 和 OS (Ubuntu 16.10 桌面)这里。我花了几个小时才终于解决了这个问题,所以我希望我能帮到你!

首先我尝试了多个内核(4.8.0.32、4.8.0.34、4.9.2 和 4.9.0-drm-intel-next),然后使用将 libva 更新到 1.7.3wsnipex 的 PPA并将 mesa 升级到 13.0.3,使用帕多卡的 PPA实际上,到那时为止,VAAPI 仍然无法正常工作(DISPLAY=:0 vainfo失败并出现您指出的相同错误)。因此,我甚至不确定这些步骤是否有必要。

然后我注意到/var/log/Xorg.0.log,在中没有 i965 驱动程序被加载的迹象。

对我来说,诀窍是添加文件/usr/share/X11/xorg.conf.d/20-intel.conf,其中包含以下内容:

Section "Device"
  Identifier  "intel"
  Driver      "intel"
EndSection

重新启动 X 服务器后,我终于能够从中读取正确的输出vainfo

相关内容