Skip to content

VA-API version 1.22.0 LIBVA_DRIVER_NAME not work #857

@eric-gitta-moore

Description

@eric-gitta-moore

It seems that the following if statement did not enter correctly.

libva/va/va.c

Lines 385 to 402 in df32686

if (ctx->override_driver_name){
if(*driver_name)
free(*driver_name);
*driver_name = strdup(ctx->override_driver_name);
if (!(*driver_name)) {
va_errorMessage(dpy, "va_getDriverNameByIndex failed with %s, out of memory\n",vaErrorStr(VA_STATUS_ERROR_ALLOCATION_FAILED));
return VA_STATUS_ERROR_ALLOCATION_FAILED;
}
va_infoMessage(dpy, "User requested driver '%s'\n", *driver_name);
return VA_STATUS_SUCCESS;
} else if (driver_name_env && (geteuid() == getuid())) {
if(*driver_name)
free(*driver_name);
/*if user set driver name by environment variable*/
*driver_name = strdup(driver_name_env);
va_infoMessage(dpy, "User environment variable requested driver '%s'\n", *driver_name);
return VA_STATUS_SUCCESS;
}

output

root@fnasfnas1:~# id
uid=0(root) gid=0(root) groups=0(root)
root@fnasfnas1:~# ls -alh /dev/dri
total 0
drwxr-xr-x  3 root root        100 Aug 10 19:02 .
drwxr-xr-x 20 root root       3.4K Aug 10 19:02 ..
drwxr-xr-x  2 root root         80 Aug 10 19:02 by-path
crw-rw----  1 root video  226,   0 Aug 10 19:02 card0
crw-rw----  1 root render 226, 128 Aug 10 19:02 renderD128
root@fnasfnas1:~# python3
Python 3.11.2 (main, Apr 28 2025, 14:11:48) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.getuid()
0
>>> os.geteuid()
0
>>>
root@fnasfnas1:~# LIBVA_DRIVER_NAME=d3d12 vainfo --display drm --device /dev/dri/card0
libva info: VA-API version 1.22.0
libva info: Trying to open /usr/trim/lib/mediasrv/dri/vgem_drv_video.so
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/vgem_drv_video.so
libva info: Trying to open /usr/lib/dri/vgem_drv_video.so
libva info: Trying to open /usr/local/lib/dri/vgem_drv_video.so
libva info: va_openDriver() returns -1
vaInitialize failed with error code -1 (unknown libva error),exit
root@fnasfnas1:~# shasum /usr/lib/x86_64-linux-gnu/libva.so.2.1700.0
34318ca263ae77c5e3f62e21fcbc33c415f5dd4b  /usr/lib/x86_64-linux-gnu/libva.so.2.1700.0
root@fnasfnas1:~# apt list | grep -E 'libva|vainfo'

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

libva-dev/oldstable 2.17.0-1 amd64
libva-drm2/oldstable,now 2.17.0-1 amd64 [installed,automatic]
libva-glx2/oldstable 2.17.0-1 amd64
libva-wayland2/oldstable,now 2.17.0-1 amd64 [installed,automatic]
libva-x11-2/oldstable,now 2.17.0-1 amd64 [installed,automatic]
libva2/oldstable,now 2.17.0-1 amd64 [installed,automatic]
libvala-0.56-0/oldstable 0.56.3-1 amd64
libvala-0.56-dev/oldstable 0.56.3-1 amd64
libvalacodegen-0.56-0/oldstable 0.56.3-1 amd64
libvaladoc-0.56-0/oldstable 0.56.3-1 amd64
libvaladoc-0.56-data/oldstable 0.56.3-1 all
libvaladoc-0.56-dev/oldstable 0.56.3-1 amd64
libvalapanel-dev/oldstable 0.5.0-2+b1 amd64
libvalapanel0/oldstable 0.5.0-2+b1 amd64
libvalidate-net-perl/oldstable 0.6-4 all
libvalidate-yubikey-perl/oldstable 0.03-2 all
libvalidation-class-perl/oldstable 7.900058-1 all
libvalijson-dev/oldstable 1.0+repack-2 all
libvamp-hostsdk3v5/oldstable 2.10.0-3 amd64
libvamp-sdk2v5/oldstable 2.10.0-3 amd64
libvamsas-client-java/oldstable 0.2+dfsg-2 all
libvanessa-adt-dev/oldstable 0.0.9-2+b2 amd64
libvanessa-adt1/oldstable 0.0.9-2+b2 amd64
libvanessa-logger-dev/oldstable 0.0.10-3.1 amd64
libvanessa-logger-sample/oldstable 0.0.10-3.1 amd64
libvanessa-logger0/oldstable 0.0.10-3.1 amd64
libvanessa-socket-dev/oldstable 0.0.13-1+b3 amd64
libvanessa-socket-pipe/oldstable 0.0.13-1+b3 amd64
libvanessa-socket2/oldstable 0.0.13-1+b3 amd64
libvar-pairs-perl/oldstable 0.004001-2 all
libvariable-disposition-perl/oldstable 0.004-4 all
libvariable-magic-perl/oldstable 0.63-1+b1 amd64
libvariantslib-ocaml-dev/oldstable 1:0.15.0-1 amd64
libvariantslib-ocaml/oldstable 1:0.15.0-1 amd64
libvarnishapi-dev/oldstable-security 7.1.1-2+deb12u1 amd64
libvarnishapi3/oldstable-security 7.1.1-2+deb12u1 amd64
libvart-dev/oldstable 2.5-4 amd64
libvart2/oldstable 2.5-4 amd64
libvavr0-java/oldstable 0.10.3-2 all
vainfo/oldstable,now 2.12.0+ds1-1 amd64 [installed]

Meanwhile, the other device was functioning normally. However, I noticed that the VAAPI versions of the two devices were not the same, but I couldn't determine which package caused the problem.

~ via 🧚 v0.43.3 at 19:52:58 
❯ shasum /usr/lib/x86_64-linux-gnu/libva.so.2.1700.0
34318ca263ae77c5e3f62e21fcbc33c415f5dd4b  /usr/lib/x86_64-linux-gnu/libva.so.2.1700.0
~ via 🧚 v0.43.3 at 20:03:29 
❯ LIBVA_DRIVER_NAME=d3d12 vainfo --display drm --device /dev/dri/card0 
libva info: VA-API version 1.17.0
Xlib:  extension "DRI2" missing on display ":0".
libva info: User environment variable requested driver 'd3d12'
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/d3d12_drv_video.so
libva info: Found init function __vaDriverInit_1_17
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.17 (libva 2.12.0)
vainfo: Driver version: Mesa Gallium driver 22.3.6 for D3D12 (NVIDIA GeForce RTX 3060)
vainfo: Supported profile and entrypoints
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointEncSlice
      VAProfileH264High               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointEncSlice
      VAProfileHEVCMain               : VAEntrypointVLD
      VAProfileHEVCMain               : VAEntrypointEncSlice
      VAProfileHEVCMain10             : VAEntrypointVLD
      VAProfileHEVCMain10             : VAEntrypointEncSlice
      VAProfileVP9Profile0            : VAEntrypointVLD
      VAProfileVP9Profile2            : VAEntrypointVLD
      VAProfileAV1Profile0            : VAEntrypointVLD
      VAProfileNone                   : VAEntrypointVideoProc
~ via 🧚 v0.43.3 at 20:04:40 
❯ apt list | grep -E 'libva|vainfo'

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

libva-dev/stable 2.17.0-1 amd64
libva-drm2/stable,now 2.17.0-1 amd64 [installed,automatic]
libva-glx2/stable 2.17.0-1 amd64
libva-wayland2/stable,now 2.17.0-1 amd64 [installed,automatic]
libva-x11-2/stable,now 2.17.0-1 amd64 [installed,automatic]
libva2/stable,now 2.17.0-1 amd64 [installed,automatic]
libvala-0.56-0/stable 0.56.3-1 amd64
libvala-0.56-dev/stable 0.56.3-1 amd64
libvalacodegen-0.56-0/stable 0.56.3-1 amd64
libvaladoc-0.56-0/stable 0.56.3-1 amd64
libvaladoc-0.56-data/stable 0.56.3-1 all
libvaladoc-0.56-dev/stable 0.56.3-1 amd64
libvalapanel-dev/stable 0.5.0-2+b1 amd64
libvalapanel0/stable 0.5.0-2+b1 amd64
libvalidate-net-perl/stable 0.6-4 all
libvalidate-yubikey-perl/stable 0.03-2 all
libvalidation-class-perl/stable 7.900058-1 all
libvalijson-dev/stable 1.0+repack-2 all
libvamp-hostsdk3v5/stable 2.10.0-3 amd64
libvamp-sdk2v5/stable 2.10.0-3 amd64
libvamsas-client-java/stable 0.2+dfsg-2 all
libvanessa-adt-dev/stable 0.0.9-2+b2 amd64
libvanessa-adt1/stable 0.0.9-2+b2 amd64
libvanessa-logger-dev/stable 0.0.10-3.1 amd64
libvanessa-logger-sample/stable 0.0.10-3.1 amd64
libvanessa-logger0/stable 0.0.10-3.1 amd64
libvanessa-socket-dev/stable 0.0.13-1+b3 amd64
libvanessa-socket-pipe/stable 0.0.13-1+b3 amd64
libvanessa-socket2/stable 0.0.13-1+b3 amd64
libvar-pairs-perl/stable 0.004001-2 all
libvariable-disposition-perl/stable 0.004-4 all
libvariable-magic-perl/stable 0.63-1+b1 amd64
libvariantslib-ocaml-dev/stable 1:0.15.0-1 amd64
libvariantslib-ocaml/stable 1:0.15.0-1 amd64
libvarnishapi-dev/stable-security 7.1.1-2+deb12u1 amd64
libvarnishapi3/stable-security 7.1.1-2+deb12u1 amd64
libvart-dev/stable 2.5-4 amd64
libvart2/stable 2.5-4 amd64
libvavr0-java/stable 0.10.3-2 all
vainfo/stable,now 2.12.0+ds1-1 amd64 [installed]

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions