Skip to content

Impossible to get HW DECODE despite good output of vaapi #417

@lukolszewski

Description

@lukolszewski

I have dual RTX3090 with driver 550.142 and vainfo returns this:

libva info: VA-API version 1.17.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.17 (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
      VAProfileVP8Version0_3          : VAEntrypointVLD
      VAProfileVP9Profile0            : VAEntrypointVLD
      VAProfileAV1Profile0            : VAEntrypointVLD
      VAProfileHEVCMain10             : VAEntrypointVLD
      VAProfileHEVCMain12             : VAEntrypointVLD
      VAProfileVP9Profile2            : VAEntrypointVLD
      VAProfileHEVCMain444            : VAEntrypointVLD

My nvidia-smi

+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.142                Driver Version: 550.142        CUDA Version: 12.4     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 3090        Off |   00000000:01:00.0  On |                  N/A |
|  0%   33C    P8             40W /  370W |    2076MiB /  24576MiB |      4%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
|   1  NVIDIA GeForce RTX 3090        Off |   00000000:03:00.0 Off |                  N/A |
|  0%   32C    P8             28W /  370W |      77MiB /  24576MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI        PID   Type   Process name                              GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|    0   N/A  N/A      6805      G   /usr/lib/xorg/Xorg                           1545MiB |
|    0   N/A  N/A      6971      G   /usr/bin/gnome-shell                           94MiB |
|    0   N/A  N/A      8056      G   alacritty                                      13MiB |
|    0   N/A  N/A    159936      G   /usr/bin/gnome-text-editor                     34MiB |
|    0   N/A  N/A    620868      G   /usr/share/librewolf/librewolf                145MiB |
|    0   N/A  N/A   1615960      G   /usr/bin/nautilus                              90MiB |
|    1   N/A  N/A      6805      G   /usr/lib/xorg/Xorg                              4MiB |
+-----------------------------------------------------------------------------------------+

I've tried various things including pointing both firefox-nightly, chrome and latest thorium to specific gpu. Firefox specifically to a specific DRM device with MOZ_DRM_DEVICE. The furthest I got was firefox-nightly claiming HW Encode was fine, but never decode. The errors I seem to get are a variant of:

in chrome/thorium:

[2467688:2467688:0111/030802.822336:ERROR:ui/gl/gl_surface_egl.cc:357] No suitable EGL configs found for initialization.
Created TensorFlow Lite XNNPACK delegate for CPU.
Attempting to use a delegate that only supports static-sized tensors with a graph that has dynamic-sized tensors (tensor#-1 is a dynamic-sized tensor).
[2467642:2467669:0111/030805.752188:ERROR:google_apis/gcm/engine/registration_request.cc:291] Registration response error message: DEPRECATED_ENDPOINT

Firefox is not logging any errors, it just mentions the multi gpu setup.

Is this supposed to be working in direct mode with apps? (I have the env vars LIBVA_DRIVER_NAME=nvidia NVD_BACKEND=direct added)

Vainfo seems happy, but apps are not.

If anyone has gotten it working, please let me know how.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions