nvidia-vaapi-driver
nvidia-vaapi-driver copied to clipboard
Fail to get NVidia driver version since V0.0.10 - working anyway up to V0.0.11 - master fails - NVidia V525.147.05
Hello!
Using the driver on Debian Sid with NVidia drivers V525.147.05, NVidia driver version is not properly detected since V0.0.10 as reported by vainfo.
Hardware decoding in Firefox works anyway, except for latest master
branch, where nv-driver.c
forces a dummy version of 470.123.45, when no proper NVidia driver version is returned.
Since nv-driver.c
sets different parameters depending on detected driver version, it might not work optimally though.
EDIT: If I substitute the dummy driver version in nv-driver.c
with 525.147.05
, master
branch works, too.
Let me know, if you need any further info.
master
vainfo --display drm
3861.555803320 [11638-11638] ../src/vabackend.c:2163 __vaDriverInit_1_0 Initialising NVIDIA VA-API Driver: 31
3861.555822223 [11638-11638] ../src/vabackend.c:2172 __vaDriverInit_1_0 Now have 0 (100 max) instances
3861.555826865 [11638-11638] ../src/vabackend.c:2198 __vaDriverInit_1_0 Selecting Direct backend
3861.561292937 [11638-11638] ../src/direct/nv-driver.c: 267 init_nvdriver Initing nvdriver...
3861.561318965 [11638-11638] ../src/direct/nv-driver.c: 285 init_nvdriver NVIDIA kernel driver version: 470.123.45, major version: 470, minor version: 123
3861.561322774 [11638-11638] ../src/direct/nv-driver.c: 292 init_nvdriver Got dev info: 100 1 0 fe
vainfo: VA-API version: 1.20 (libva 2.12.0)
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
VAProfileVP9Profile2 : VAEntrypointVLD
3861.609695301 [11638-11638] ../src/vabackend.c:2073 nvTerminate Terminating 0x561abc2e44d0
3861.609723190 [11638-11638] ../src/vabackend.c:2087 nvTerminate Now have 0 (100 max) instances
0.0.11
vainfo --display drm
1724.182846035 [9012-9012] ../src/vabackend.c:2140 __vaDriverInit_1_0 Initialising NVIDIA VA-API Driver: 31
1724.182853024 [9012-9012] ../src/vabackend.c:2149 __vaDriverInit_1_0 Now have 0 (100 max) instances
1724.182854389 [9012-9012] ../src/vabackend.c:2175 __vaDriverInit_1_0 Selecting Direct backend
1724.185516520 [9012-9012] ../src/direct/nv-driver.c: 246 init_nvdriver Initing nvdriver...
1724.185533625 [9012-9012] ../src/direct/nv-driver.c: 264 init_nvdriver NVIDIA kernel driver version: , major version: 0, minor version: 0
1724.185535862 [9012-9012] ../src/direct/nv-driver.c: 271 init_nvdriver Got dev info: 100 1 0 fe
vainfo: VA-API version: 1.20 (libva 2.12.0)
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
VAProfileVP9Profile2 : VAEntrypointVLD
1724.253564016 [9012-9012] ../src/vabackend.c:2050 nvTerminate Terminating 0x55faa863c4d0
1724.253601577 [9012-9012] ../src/vabackend.c:2064 nvTerminate Now have 0 (100 max) instances
0.0.10
vainfo --display drm
1788.621713788 [9366-9366] ../src/vabackend.c:2171 __vaDriverInit_1_0 Initialising NVIDIA VA-API Driver: 31
1788.621719863 [9366-9366] ../src/vabackend.c:2180 __vaDriverInit_1_0 Now have 0 (100 max) instances
1788.621721409 [9366-9366] ../src/vabackend.c:2206 __vaDriverInit_1_0 Selecting Direct backend
1788.625026749 [9366-9366] ../src/direct/nv-driver.c: 223 init_nvdriver Initing nvdriver...
1788.625034882 [9366-9366] ../src/direct/nv-driver.c: 228 init_nvdriver Got dev info: 100 1 0 fe
1788.625053602 [9366-9366] ../src/direct/nv-driver.c: 246 init_nvdriver NVIDIA kernel driver version: , major version: 0
vainfo: VA-API version: 1.20 (libva 2.12.0)
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
VAProfileVP9Profile2 : VAEntrypointVLD
1788.674947092 [9366-9366] ../src/vabackend.c:2081 nvTerminate Terminating 0x55b9089ed4d0
1788.674973597 [9366-9366] ../src/vabackend.c:2095 nvTerminate Now have 0 (100 max) instances
0.0.9
vainfo --display drm
1848.108299963 [9623-9623] ../src/vabackend.c:2165 __vaDriverInit_1_0 Initialising NVIDIA VA-API Driver: 31
1848.108307034 [9623-9623] ../src/vabackend.c:2174 __vaDriverInit_1_0 Now have 0 (100 max) instances
1848.108309093 [9623-9623] ../src/vabackend.c:2200 __vaDriverInit_1_0 Selecting Direct backend
1848.110891810 [9623-9623] ../src/direct/nv-driver.c: 217 init_nvdriver Initing nvdriver...
1848.110897873 [9623-9623] ../src/direct/nv-driver.c: 222 init_nvdriver Got dev info: 100 1 0 fe
1848.110939621 [9623-9623] ../src/direct/nv-driver.c: 283 init_nvdriver NVIDIA kernel driver version: 525.147.05
vainfo: VA-API version: 1.20 (libva 2.12.0)
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
VAProfileVP9Profile2 : VAEntrypointVLD
1848.159538404 [9623-9623] ../src/vabackend.c:2075 nvTerminate Terminating 0x560b66bca4d0
1848.159563850 [9623-9623] ../src/vabackend.c:2089 nvTerminate Now have 0 (100 max) instances
0.0.8
vainfo --display drm
1910.163405610 [9823-9823] ../src/vabackend.c:1872 __vaDriverInit_1_0 Initialising NVIDIA VA-API Driver: 0x55a4aca714d0 31
1910.163438854 [9823-9823] ../src/vabackend.c:1894 __vaDriverInit_1_0 Now have 0 (100 max) instances
1910.163448955 [9823-9823] ../src/vabackend.c:1919 __vaDriverInit_1_0 Selecting Direct backend
1910.169206016 [9823-9823] ../src/direct/nv-driver.c: 190 init_nvdriver Initing nvdriver...
1910.169216726 [9823-9823] ../src/direct/nv-driver.c: 195 init_nvdriver Got dev info: 100 1 0 fe
1910.169285884 [9823-9823] ../src/direct/nv-driver.c: 256 init_nvdriver NVIDIA kernel driver version: 525.147.05
vainfo: VA-API version: 1.20 (libva 2.12.0)
vainfo: Driver version: VA-API NVDEC driver [direct backend]
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
<unknown profile> : VAEntrypointVLD
VAProfileH264Main : VAEntrypointVLD
VAProfileH264High : VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointVLD
VAProfileVP9Profile0 : VAEntrypointVLD
VAProfileHEVCMain10 : VAEntrypointVLD
VAProfileHEVCMain12 : VAEntrypointVLD
VAProfileVP9Profile2 : VAEntrypointVLD
1910.215269854 [9823-9823] ../src/vabackend.c:1843 nvTerminate Terminating 0x55a4aca714d0
1910.215295739 [9823-9823] ../src/vabackend.c:1857 nvTerminate Now have 0 (100 max) instances
Hardware decoding in Firefox works anyway, except for latest
master
branch
Maybe related to https://github.com/elFarto/nvidia-vaapi-driver/issues/271
From a quick glance at the code:
The nv_get_versions
function in nv-driver.c
changed somewhere between V0.0.9 and V0.0.10 and, at least on my system, the new version seems to return an empty string (see vainfo output in original post).
nv-driver.c
sets different parameters based on driver version in the nv_alloc_object
function (f.e. if (driverMajorVersion < 525) {
...).
Up to about V0.0.10 these comparisons might not result in an optimal set of values for the 525 driver on my system due to the non-working nv_get_version
function, but decoding still works.
In latest master
however, the empty string is replaced with dummy version 470.123.45
, resulting in the alloc_buffer
function handling nvkms_params_size
differently .nvkms_params_size = context->driverMajorVersion == 470 ? 0x20 : sizeof(nvkmsParams)
.
I assume the latter is why latest master does not work anymore on my system, and does work again, if I replace the dummy driver version with 525.147.05
.
I don't claim to know exactly, how the code is working, so I might be off here.
That was added in 1d6a9d39bed38d1e2cfbe6528fafc91e1618af68 to fix #267