我正在尝试让 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
。