Vainfo 在双 gpu 系统中返回“libva 错误:/usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so init 失败”

Vainfo 在双 gpu 系统中返回“libva 错误:/usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so init 失败”

我有一个双 GPU 系统。它有一个第二代 Sandy Bridge iGPU 和一个 nvidia 650ti。Nvidia gpu 连接到显示器并使用专有驱动程序。我正在尝试使用 iGPU 进行视频编码。

我已经使用安装了 va 驱动程序

sudo apt-get install i965-va-driver

如果我运行vainfo它,它将返回:

libva info: VA-API version 1.1.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/nvidia_drv_video.so
libva info: va_openDriver() returns -1
vaInitialize failed with error code -1 (unknown libva error),exit

但如果我运行LIBVA_DRIVER_NAME=i965 vainfo它,它会返回:

libva info: VA-API version 1.1.0
libva info: va_getDriverName() returns 0
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_1_1
libva error: /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so init failed
libva info: va_openDriver() returns -1
vaInitialize failed with error code -1 (unknown libva error),exit

答案1

有点晚了,但我遇到了同样的问题,所以我想保留对我有用的方法。显然你需要 VDPAU(http://http.download.nvidia.com/XFree86/vdpau/doxygen/html/index.html) 包装器。

sudo apt-get install vdpau-va-driver

此后一切恢复正常。

libva info: VA-API version 1.1.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/nvidia_drv_video.so
libva info: Found init function __vaDriverInit_1_0
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.1 (libva 2.1.0)
vainfo: Driver version: Splitted-Desktop Systems VDPAU backend for VA-API - 0.7.4

答案2

包裹vdpau-va-driver是 NVIDIA 专有驱动程序硬件加速所必需的。Canonicalvdpau-va-driver不久前放弃了该软件包,原因不明。Launchpad 中已报告此情况,请点击“这个错误是否影响您?”来报告您受到影响。

Debian 提供了最新版本,目前为 0.7.4-7,可供下载这里(下载最新的 32 位 64 位版本)并通过dpkg -i在相应的包上运行从命令行进行安装。安装后,命令vainfo再次正常运行并返回以下内容:

vainfo: Driver version: Splitted-Desktop Systems VDPAU backend for VA-API - 0.7.4

然后,您可以参考 ArchWiki 的指南,了解如何在不同的应用程序中利用 VDPAU。

答案3

我遇到了同样的问题,浏览器运行缓慢,甚至移动鼠标也会导致 YouTube 丢帧,因此我正在研究启用硬件加速。

运行vainfo会失败但是:

$ vainfo --display drm --device /dev/dri/renderD128
libva info: VA-API version 1.1.0
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_1_1
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.1 (libva 2.1.0)
vainfo: Driver version: Intel i965 driver for Intel(R) Skylake - 2.1.0
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Simple            : VAEntrypointEncSlice
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
      VAProfileH264ConstrainedBaseline: VAEntrypointFEI
      VAProfileH264ConstrainedBaseline: VAEntrypointStats
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointEncSlice
      VAProfileH264Main               : VAEntrypointEncSliceLP
      VAProfileH264Main               : VAEntrypointFEI
      VAProfileH264Main               : VAEntrypointStats
      VAProfileH264High               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointEncSlice
      VAProfileH264High               : VAEntrypointEncSliceLP
      VAProfileH264High               : VAEntrypointFEI
      VAProfileH264High               : VAEntrypointStats
      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

我意识到操作系统只在第一个 GPU 上寻找vainfoHWA,在更改之后主要的GPU 使用:

$ sudo nvidia-settings
$ # or alternatively
$ sudo prime-select intel

重置后,两者均开始工作:

$ vainfo --display drm --device /dev/dri/renderD129
libva info: VA-API version 1.1.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/nouveau_drv_video.so
libva info: Found init function __vaDriverInit_1_1
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.1 (libva 2.1.0)
vainfo: Driver version: Mesa Gallium driver 20.0.8 for NV118
vainfo: Supported profile and entrypoints
      VAProfileNone                   : VAEntrypointVideoProc

我的 CPU 温度降低了 20°C,我可以顺畅滚动并观看视频而不会掉帧。

相关内容