[solved] Steam Remote Hardware Decoding on Fedora (Silverblue)

Hi all,

I was wondering if anyone has had success at getting hardware decoding on remote play working under Fedora, I always seem to have the following error:

CVDPAUAccel: GL_NV_vdpau_interop not available on current context
ffmpeg verbose: Opened VA display via X11 display :0.
libva info: VA-API version 1.11.0
libva error: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null)
ffmpeg error: Failed to initialise VAAPI connection: -1 (unknown libva error).
CVAAPIAccel: av_hwdevice_ctx_create() failed
libavcodec software decoding with 4 threads

Which then falls back the streaming to software decoding.

Please let me know if anyone knows how I should go about troubleshooting further

vainfo shows:

libva info: VA-API version 1.11.0
libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so
libva info: va_openDriver() returns -1
libva info: Trying to open /usr/lib64/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_10
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.11 (libva 2.11.0)
vainfo: Driver version: Intel i965 driver for Intel(R) Kaby Lake - 2.4.1
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            :	VAEntrypointVLD
      VAProfileMPEG2Simple            :	VAEntrypointEncSlice
      VAProfileMPEG2Main              :	VAEntrypointVLD
      VAProfileMPEG2Main              :	VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline:	VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSliceLP
      VAProfileH264Main               :	VAEntrypointVLD
      VAProfileH264Main               :	VAEntrypointEncSlice
      VAProfileH264Main               :	VAEntrypointEncSliceLP
      VAProfileH264High               :	VAEntrypointVLD
      VAProfileH264High               :	VAEntrypointEncSlice
      VAProfileH264High               :	VAEntrypointEncSliceLP
      VAProfileH264MultiviewHigh      :	VAEntrypointVLD
      VAProfileH264MultiviewHigh      :	VAEntrypointEncSlice
      VAProfileH264StereoHigh         :	VAEntrypointVLD
      VAProfileH264StereoHigh         :	VAEntrypointEncSlice
      VAProfileVC1Simple              :	VAEntrypointVLD
      VAProfileVC1Main                :	VAEntrypointVLD
      VAProfileVC1Advanced            :	VAEntrypointVLD
      VAProfileNone                   :	VAEntrypointVideoProc
      VAProfileJPEGBaseline           :	VAEntrypointVLD
      VAProfileJPEGBaseline           :	VAEntrypointEncPicture
      VAProfileVP8Version0_3          :	VAEntrypointVLD
      VAProfileVP8Version0_3          :	VAEntrypointEncSlice
      VAProfileHEVCMain               :	VAEntrypointVLD
      VAProfileHEVCMain               :	VAEntrypointEncSlice
      VAProfileHEVCMain10             :	VAEntrypointVLD
      VAProfileHEVCMain10             :	VAEntrypointEncSlice
      VAProfileVP9Profile0            :	VAEntrypointVLD
      VAProfileVP9Profile0            :	VAEntrypointEncSlice
      VAProfileVP9Profile2            :	VAEntrypointVLD

I get the feeling I may need some 32-bit packages or to set some environmental variables, but I’m not sure.

Update: Fix

To fix this, you have to run Steam under XOrg. You must also have the LIBVA driver packages - some Intel chips use iHD and some use i965, in my case I was able to use iHD drivers for my Kaby Lake chip.

Grab the drivers, you may need to install Steam to the system for this to work (not in a Flatpak) - but I’m yet to test this:

libva-intel-driver-2.4.1-5.fc34.i686 libva-intel-driver.i686 libva-utils libva-intel-driver intel-media-driver-21.1.3-1.fc34.i686

Start Steam under XORG (not wayland, it will crash/fall back to Software Decoding!) with the driver and path to the driver as enviromental arguments:

VDPAU_DRIVER=va_gl LIBVA_DRIVERS_PATH=/usr/lib/dri LIBVA_DRIVER_NAME=iHD steam

Enjoy VAAPI hardware decoding on Fedora 34!

1 Like

update: doesn’t work under wayland - details are on this Github comment

1 Like