protonscr

Steam always uses SW encoding on Bazzite OS

steamclosed AMD driversStreamingDistro Family: Fedora
ValveSoftware/steam-for-linux#12063 · opened 2025-05-31 by AkazaRenn · updated 2025-06-03 · 6 comments · github
AAkazaRenn 2025-05-31 github

Your system information

  • Steam client version (build number or date): 1748301070 (Mon, May 26 19:00 UTC -08:00)
  • Distribution (e.g. Ubuntu): Bazzite OS
  • Opted into Steam client beta?: No
  • Have you checked for system updates?: Yes
  • Steam Logs: steam-logs.tar.gz
  • GPU: AMD Radeon 6950XT

Please describe your issue in as much detail as possible:

When streaming via Steam Link, the video is always encoded using libx264, while my system is capable of HEVC encoding. The capability has been verified by ffmpeg using the following command:

ffmpeg -hwaccel vaapi -vaapi_device /dev/dri/renderD128 -i 3209663-uhd_3840_2160_25fps.mp4 -vf "format=nv12,hwupload" -c:v hevc_vaapi -b:v 5M -preset fast -profile:v main -level:v 5.1 output.mp4

vainfo output:

Trying display: wayland
libva info: VA-API version 1.22.0
libva info: Trying to open /usr/lib64/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_1_22
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.22 (libva 2.22.0)
vainfo: Driver version: Mesa Gallium driver 25.1.0 for AMD Radeon RX 6950 XT (radeonsi, navi21, LLVM 20.1.3, DRM 3.61, 6.14.6-105.bazzite.fc42.x86_64)
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            :	VAEntrypointVLD
      VAProfileMPEG2Main              :	VAEntrypointVLD
      VAProfileVC1Simple              :	VAEntrypointVLD
      VAProfileVC1Main                :	VAEntrypointVLD
      VAProfileVC1Advanced            :	VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:	VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSlice
      VAProfileH264Main               :	VAEntrypointVLD
      VAProfileH264Main               :	VAEntrypointEncSlice
      VAProfileH264High               :	VAEntrypointVLD
      VAProfileH264High               :	VAEntrypointEncSlice
      VAProfileHEVCMain               :	VAEntrypointVLD
      VAProfileHEVCMain               :	VAEntrypointEncSlice
      VAProfileHEVCMain10             :	VAEntrypointVLD
      VAProfileHEVCMain10             :	VAEntrypointEncSlice
      VAProfileJPEGBaseline           :	VAEntrypointVLD
      VAProfileVP9Profile0            :	VAEntrypointVLD
      VAProfileVP9Profile2            :	VAEntrypointVLD
      VAProfileAV1Profile0            :	VAEntrypointVLD
      VAProfileNone                   :	VAEntrypointVideoProc

Steps for reproducing this issue:

  1. Install Bazzite OS on a desktop system running AMD GPU
  2. Start a Steam Link session connecting to the desktop
  3. Check statistics, finding that the video is encoded using libx264
Kkisak-valve maintainer 2025-05-31 github

Hello @AkazaRenn,

Here's the relevant lines from your streaming_log.txt:
[2025-05-30 21:44:22][1247.650832] Building new pipeline
[2025-05-30 21:44:22][1247.650929] Trying to create an encoder for streaming: [hardware_enabled=true][hardware_suppressed=false]
[2025-05-30 21:44:22][1247.650942] Allowed Codecs: 5,4
[2025-05-30 21:44:22][1247.653158] Created encoder VAAPI for codec 5
[2025-05-30 21:44:22][1247.653183] CGameStreamVideoStageVAAPI: Reinitializing 2194x1234 at 50000 Kbit/s and 59.75 FPS with quality 1
[2025-05-30 21:44:22][1247.656499] ffmpeg verbose: libva: VA-API version 1.22.0
[2025-05-30 21:44:22][1247.656525] ffmpeg verbose: libva: Trying to open /usr/lib/dri/radeonsi_drv_video.so
[2025-05-30 21:44:22][1247.656553] ffmpeg verbose: libva: va_openDriver() returns -1
[2025-05-30 21:44:22][1247.656562] ffmpeg error: Failed to initialise VAAPI connection: -1 (unknown libva error).
[2025-05-30 21:44:22][1247.657897] CGameStreamVideoStageVAAPI: Failed to create device context: Input/output error
[2025-05-30 21:44:22][1247.657911] Failed to pre-process frame
[2025-05-30 21:44:22][1247.657926] Encoder stage failed [type=5, codec=5]
[2025-05-30 21:44:22][1247.658389] Building new pipeline
[2025-05-30 21:44:22][1247.658441] Trying to create an encoder for streaming: [hardware_enabled=true][hardware_suppressed=false]
[2025-05-30 21:44:22][1247.658450] Allowed Codecs: 5,4
[2025-05-30 21:44:22][1247.658460] Failed encoders: 2/5, 2/4, 4/5, 4/4, 5/5
[2025-05-30 21:44:22][1247.659184] Created encoder VAAPI for codec 4
[2025-05-30 21:44:22][1247.659197] CGameStreamVideoStageVAAPI: Reinitializing 2194x1234 at 50000 Kbit/s and 59.75 FPS with quality 1
[2025-05-30 21:44:22][1247.659385] ffmpeg verbose: libva: VA-API version 1.22.0
[2025-05-30 21:44:22][1247.659409] ffmpeg verbose: libva: Trying to open /usr/lib/dri/radeonsi_drv_video.so
[2025-05-30 21:44:22][1247.659434] ffmpeg verbose: libva: va_openDriver() returns -1
[2025-05-30 21:44:22][1247.659443] ffmpeg error: Failed to initialise VAAPI connection: -1 (unknown libva error).
[2025-05-30 21:44:22][1247.659571] CGameStreamVideoStageVAAPI: Failed to create device context: Input/output error
[2025-05-30 21:44:22][1247.659580] Failed to pre-process frame
[2025-05-30 21:44:22][1247.676488] Encoder stage failed [type=5, codec=4]
[2025-05-30 21:44:22][1247.676533] Building new pipeline
[2025-05-30 21:44:22][1247.676614] Trying to create an encoder for streaming: [hardware_enabled=true][hardware_suppressed=false]
[2025-05-30 21:44:22][1247.676631] Allowed Codecs: 5,4
[2025-05-30 21:44:22][1247.676641] Failed encoders: 2/5, 2/4, 4/5, 4/4, 5/5, 5/4
[2025-05-30 21:44:22][1247.677569] Created encoder X264 for codec 4
[2025-05-30 21:44:22][1247.677630] Detected 16 logical processors, using 4 threads
[2025-05-30 21:44:22][1247.677639] Configuring encoder: [threads=4][width=2194][height=1234][preset=superfast][tune=zerolatency]
[2025-05-30 21:44:22][1247.681934] Video Encoder Changed
[2025-05-30 21:44:22][1247.684070] >>> Capture method set to Desktop OpenGL NV12 + libx264 main (4 threads)

Steam's trying to use the VAAPI accelerated path and getting an unknown error back from the driver before falling back to x264. I'd see if there's a 32 bit vainfo available to use as a test case and mention the issue to your distro's package maintainer(s) for mesa and/or libva.

AAkazaRenn 2025-05-31 github

@kisak-valve thank you for taking a look! I've created an issue for Bazzite and will transfer your opinions there. As for the 32 bit version of vainfo I haven't found a proper way to install it yet. I'll try to get it working and update here.

AAkazaRenn 2025-05-31 github

I've built the 32 bit vainfo and tested it:

deck@Steam:/var/home/deck/Downloads$ file vainfo
vainfo: ELF 32-bit LSB executable, Intel i386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, BuildID[sha1]=96f514ba61d4e12d6533e9eca45e4adade75ad8a, for GNU/Linux 3.2.0, not stripped
deck@Steam:/var/home/deck/Downloads$ ./vainfo
Trying display: wayland
libva info: VA-API version 1.22.0
libva info: Trying to open /usr/lib/dri/radeonsi_drv_video.so
libva info: va_openDriver() returns -1
vaInitialize failed with error code -1 (unknown libva error),exit

@kisak-valve that seems matching your suspect.

AAkazaRenn 2025-05-31 github

Maybe a bit overreaching, is there a plan to release 64-bit version of Steam on Linux and Windows?

AAkazaRenn 2025-06-03 github

Fixed on Bazzite side