intel / libva-utils

Libva-utils is a collection of tests for VA-API (VIdeo Acceleration API)
https://01.org/linuxmedia
Other
195 stars 162 forks source link

vainfo vaGetDriverNames error #356

Open drhashes opened 9 months ago

drhashes commented 9 months ago

`Case 1: vainfo Trying display: wayland Trying display: x11

and failing detection: libva error: vaGetDriverNames() failed with unknown libva error

Case 2: vainfo --display drm All good when forcing to display drm.

Why is testing not done for drm in Case 1? Should be: Trying display: wayland Trying display: x11 Trying display: drm


Case 1: vainfo Trying display: wayland Trying display: x11 libva info: VA-API version 1.21.0 libva error: vaGetDriverNames() failed with unknown libva error libva info: User environment variable requested driver 'nvidia' 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.21 (libva 2.21.0.pre1) vainfo: Driver version: VA-API NVDEC driver [direct backend] vainfo: Supported profile and entrypoints VAProfileMPEG2Simple : VAEntrypointVLD VAProfileMPEG2Main : VAEntrypointVLD VAProfileVC1Simple : VAEntrypointVLD VAProfileVC1Main : VAEntrypointVLD VAProfileVC1Advanced : VAEntrypointVLD VAProfileH264Main : VAEntrypointVLD VAProfileH264High : VAEntrypointVLD VAProfileH264ConstrainedBaseline: VAEntrypointVLD VAProfileHEVCMain : VAEntrypointVLD VAProfileVP9Profile0 : VAEntrypointVLD VAProfileHEVCMain10 : VAEntrypointVLD VAProfileHEVCMain12 : VAEntrypointVLD


Case 2: vainfo --display drm Trying display: drm libva info: VA-API version 1.21.0 libva info: User environment variable requested driver 'nvidia' 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.21 (libva 2.21.0.pre1) vainfo: Driver version: VA-API NVDEC driver [direct backend] vainfo: Supported profile and entrypoints VAProfileMPEG2Simple : VAEntrypointVLD VAProfileMPEG2Main : VAEntrypointVLD VAProfileVC1Simple : VAEntrypointVLD VAProfileVC1Main : VAEntrypointVLD VAProfileVC1Advanced : VAEntrypointVLD VAProfileH264Main : VAEntrypointVLD VAProfileH264High : VAEntrypointVLD VAProfileH264ConstrainedBaseline: VAEntrypointVLD VAProfileHEVCMain : VAEntrypointVLD VAProfileVP9Profile0 : VAEntrypointVLD VAProfileHEVCMain10 : VAEntrypointVLD VAProfileHEVCMain12 : VAEntrypointVLD `

XinfengZhang commented 9 months ago

suppose it is vainfo issue, should transfer to https://github.com/intel/libva-utils

s1nceri7y commented 8 months ago

I believe I have the similar error.

Cross-posting my old debug session. At the time of debugging I've used the "linux-zen" and "nvidia" packages from arch repository. However, I didn't used nvidia-dkms package, and I'm also not sure if I had the "linux-zen-headers". The error itself is still persists afterwards, but I didn't had a chance to debug again to see if it change anything inside.

I spent some time learning how to debug using gdb. I'm getting the -1 here, which produces the error. Stack-trace

image

Just in case I'll leave the strace log here. log.txt

https://github.com/elFarto/nvidia-vaapi-driver/issues/261#issuecomment-1869106188

XinfengZhang commented 8 months ago

reply https://github.com/intel/libva-utils/issues/356#issue-2062089841 the issue is caused by the https://github.com/intel/libva-utils/blob/master/vainfo/vainfo.c#L526 success , but https://github.com/intel/libva-utils/blob/master/vainfo/vainfo.c#L532 failed. the protocol trying is in va_open_display, could not cover failed of vaInitialize

XinfengZhang commented 8 months ago

I spent some time learning how to debug using gdb. I'm getting the -1 here, which produces the error. Stack-trace

from this description , looks va_DRI3_GetDriverNames failed, then it will try va_DRI2_GetDriverNames , it also failed?

drhashes commented 8 months ago

A work around is suggested here but would it not be better to fix this for real?

https://github.com/elFarto/nvidia-vaapi-driver/issues/245#issuecomment-1891173996

mirh commented 4 months ago

Indeed, as I said in https://github.com/intel/libva/pull/617 the rationale was completely misplaced.