Skip to content

[pressure-vessel] NVIDIA encoding libraries (libnvidia-encode.so.1) and VA-API driver not captured on Manjaro/Arch #799

@Reverberation1

Description

@Reverberation1

Your system information

  • Steam Runtime Version: 1.0.20251202.187498
  • Distribution (e.g. Ubuntu 18.04): Manjaro Linux
  • Link to your full system information (Help -> Steam Runtime Diagnostics) in a Gist: System Information
  • Have you checked for system updates?: Yes
  • What compatibility tool are you using?: Steam Linux Runtime (scout/soldier/sniper)
  • What versions are listed in steamapps/common/SteamLinuxRuntime/VERSIONS.txt?
depot 0.20240806.0
scripts 0.20240806.0
  • What versions are listed in steamapps/common/SteamLinuxRuntime_soldier/VERSIONS.txt?
    depot 2.0.20251216.191773
pressure-vessel 0.20251210.0 (scout)
scripts 0.20251210.0
soldier 2.0.20251216.191773
  • What versions are listed in steamapps/common/SteamLinuxRuntime_sniper/VERSIONS.txt?
depot 3.0.20251216.191774
pressure-vessel 0.20251210.0
scripts 0.20251210.0
sniper 3.0.20251216.191774

Please describe your issue in as much detail as possible:

Remote Play from this NVIDIA host fails to initialise hardware encoding. The streaming_log.txt reports NVENC - No CUDA support and attempts to fall back to VAAPI, which also fails with va_openDriver() returns -1.

The issue appears to be a failure in pressure-vessel to capture the NVIDIA encoding libraries from the host, even though they are present and correctly installed.

I have verified that the 32-bit and 64-bit libraries exist on the host via ldconfig -p | grep libnvidia-encode:

    /usr/lib/libnvidia-encode.so.1
    /usr/lib32/libnvidia-encode.so.1

In the attached Steam Runtime Diagnostics, libcuda.so.1 is successfully mapped into overrides, but libnvidia-encode.so.1 is completely absent from the container overrides list.

nvidia_drv_video.so is not found in the container's DRI paths, preventing the hardware fallback.

I attempted to force-mount the libraries using PRESSURE_VESSEL_FILESYSTEMS_RW, but the runtime rejected this with the message: W: Not sharing path ... with container because "/usr" is reserved by the container framework.

This suggests that the runtime's discovery logic is intentionally or unintentionally skipping these specific libraries on this distribution/driver combination (NVIDIA 590.48.01) (?).

SLR Log
Streaming Log

Steps for reproducing this issue:

  1. Launch Steam on a Manjaro/Arch host using NVIDIA 590.xx drivers with lib32-nvidia-utils installed.
  2. Attempt a Remote Play session to a client (e.g., Steam Deck).
  3. Observe the "No CUDA support" error in logs and the fallback to software encoding (libx264).
  4. Run "Steam Runtime Diagnostics" and note that libnvidia-encode is missing from the mapped libraries section.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions