elFarto / nvidia-vaapi-driver

A VA-API implemention using NVIDIA's NVDEC
Other
1.17k stars 53 forks source link

Doesn't work on a thinkpad P14 with nvidia quadro T500 #234

Closed sebastiangomezlopez closed 8 months ago

sebastiangomezlopez commented 1 year ago

Hi I've installed everything ans set all the env vars according to the installation manual.

Here's what vainfo returns

libva info: VA-API version 1.14.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.14 (libva 2.12.0)
vainfo: Driver version: VA-API NVDEC driver [egl backend]
vainfo: Supported profile and entrypoints

Also, here's what about:support shows:

Window Protocol x11
Desktop Environment ubuntu:gnome
Target Frame Rate   60
WebGPU Default Adapter  {
  "navigator.gpu": null
}
WebGPU Fallback Adapter {
  "navigator.gpu": null
}
GPU #1
Active  Yes
Description NVIDIA T500/PCIe/SSE2
Vendor ID   0x10de
Device ID   0x1fbb
Driver Vendor   nvidia/unknown
Driver Version  530.30.2.0
RAM 0

If I understand the output correctly, it should be working just fine. However the GPU utilization is 0% when i play youtube videos in firefox

elFarto commented 1 year ago

Try setting NVD_BACKEND=direct, this is required as the NVIDIA drivers have a bug that prevents the EGL backend from working.

sebastiangomezlopez commented 1 year ago

Thanks for answering so quickly. Unfortunately, doing that doesn't solve it.

elFarto commented 1 year ago

Can you run NVD_LOG=1 NVD_BACKEND=direct vainfo and paste the output here?

sebastiangomezlopez commented 1 year ago

Here's the output:

libva info: VA-API version 1.14.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
      1247.164643813 [8250-8250] ../src/vabackend.c:2171       __vaDriverInit_1_0 Initialising NVIDIA VA-API Driver: 10
      1247.164657121 [8250-8250] ../src/vabackend.c:2180       __vaDriverInit_1_0 Now have 0 (0 max) instances
      1247.164661762 [8250-8250] ../src/vabackend.c:2206       __vaDriverInit_1_0 Selecting Direct backend
      1247.181624873 [8250-8250] ../src/backend-common.c:  31            isNvidiaDrmFd Invalid driver for DRM device: i915
      1247.181670817 [8250-8250] ../src/direct/direct-export-buf.c:  85      direct_initExporter Found NVIDIA GPU 0 at /dev/dri/renderD129
      1247.181676295 [8250-8250] ../src/direct/nv-driver.c: 223            init_nvdriver Initing nvdriver...
      1247.181683192 [8250-8250] ../src/direct/nv-driver.c: 228            init_nvdriver Got dev info: 100 1 2 6
      1247.181752196 [8250-8250] ../src/direct/nv-driver.c: 246            init_nvdriver NVIDIA kernel driver version: 535.86.05, major version: 535
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.14 (libva 2.12.0)
vainfo: Driver version: VA-API NVDEC driver [direct backend]
vainfo: Supported profile and entrypoints
      1247.292735087 [8250-8250] ../src/vabackend.c:2081              nvTerminate Terminating 0x557bc7af4510
      1247.292800549 [8250-8250] ../src/vabackend.c:2095              nvTerminate Now have 0 (0 max) instances
rkoot commented 1 year ago

Maybe your version of libva is too old? I'm using libva 2.19.0 which works fine. (vaapi 1.19)

elFarto commented 8 months ago

The issue is that the Quadro T500 is not supported by NVDEC[1], therefore this driver will not work with it:

[1] https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new