Hello @Peetz0r, please copy your system information from Steam (Steam -> Help -> System Information) and put it in a gist, then include a link to the gist in this issue report.
Done (https://gist.github.com/Peetz0r/054d8d859e70c141e8eec19acb776630)
Also thanks for replying so quickly!
And I forgot to mention that the steam version is exactly the same on both ends.
Can you run a 32 bit vainfo binary inside the steam runtime? You can use steam's run.sh to bootstrap the binary into the runtime, e.g.:
~/.steam/steam/ubuntu12_32/steam-runtime/run.sh vainfo32
Hmm, I don't seem to have a 32 bit vainfo on fedora. But if I steal the one from ubuntu then I get the exact same output except for the version numbers and library path.
peter@joogaa ~> ~/.steam/steam/ubuntu12_32/steam-runtime/run.sh /tmp/vainfo_2.5.0+ds1-1_i386/usr/bin/vainfo
libva info: VA-API version 1.6.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_5
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.6 (libva 2.5.0)
vainfo: Driver version: Intel i965 driver for Intel(R) Kaby Lake - 2.4.0
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
Hey! I have checked again today (latest steam beta on both sides, everything else the same as before) and it's still doing software decoding.
Have you internally been able to reproduce the issue? Is there any more details I can provide? Does it help to test on other distros from a live usb? Anything else I can do?
I am seeing this same error on Fedora 31 on my laptop with Intel UHD 620 graphics.
Please let me know what details you need and I can provide them
It is now over 3 months later and I have upgraded to Fedora 32, and the issue is still unchanged. Here's the current output of vainfo:
libva info: Trying to open /usr/lib/dri/iHD_drv_video.so
libva info: va_openDriver() returns -1
libva info: Trying to open /usr/lib/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_6
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.7 (libva 2.7.0.pre1)
vainfo: Driver version: Intel i965 driver for Intel(R) Kaby Lake - 2.4.0
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 suddenly remembered reading something that I first though would be unrelated, but here it is:
This is only an issue on Wayland! More specifically, libva doesn't work trough XWayland, and steam doesn't do native Wayland yet.
Related issue (from 2017, but still open): https://github.com/intel/libva/issues/79
I'm running Fedora Silverblue 34, with Gnome+Wayland. I can't get this to work on Intel HD graphics either. I installed the following packages:
steam 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
Starting Steam with the flags:
VDPAU_DRIVER=va_gl LIBVA_DRIVERS_PATH=/usr/lib/dri LIBVA_DRIVER_NAME=iHD steam
Results in a crash, with the log:
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 info: User environment variable requested driver 'iHD'
libva info: Trying to open /usr/lib/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_11
libva info: va_openDriver() returns 0
ffmpeg verbose: Initialised VAAPI connection: version 1.11
ffmpeg verbose: Unknown driver "Intel iHD driver for Intel(R) Gen Graphics - 21.1.3 ()", assuming standard behaviour.
VAAPI hardware decoding
ffmpeg verbose: Reinit context to 1920x1088, pix_fmt: vaapi_vld
Marking frame 1 complete with status k_EStreamFrameResultDroppedLate
Marking frame 2 complete with status k_EStreamFrameResultDroppedLate
Marking frame 3 complete with status k_EStreamFrameResultDroppedLate
Marking frame 4 complete with status k_EStreamFrameResultDroppedLate
Marking frame 5 complete with status k_EStreamFrameResultDroppedLate
Marking frame 6 complete with status k_EStreamFrameResultDroppedLate
Marking frame 39 complete with status k_EStreamFrameResultDroppedLate
Marking frame 40 complete with status k_EStreamFrameResultDroppedLate
Video rect: 2560x1440 at 0,0
Texture rect: 1920x1080 at 0,0
Video size: 1920x1080, output size: 2560x1440, overlay size: 2560x1440
Video rect: 2560x1440 at 0,0
Texture rect: 1920x1080 at 0,0
Video rect: 2560x1440 at 0,0
Texture rect: 1920x1080 at 0,0
crash_20210516214242_2.dmp[7981]: Uploading dump (out-of-process)
/tmp/dumps/crash_20210516214242_2.dmp
crash_20210516214242_2.dmp[7981]: Finished uploading minidump (out-of-process): success = yes
crash_20210516214242_2.dmp[7981]: response: CrashID=bp-8a8df86c-548a-49c3-b70d-23d492210516
crash_20210516214242_2.dmp[7981]: file ''/tmp/dumps/crash_20210516214242_2.dmp'', upload yes: ''CrashID=bp-8a8df86c-548a-49c3-b70d-23d492210516''
Dump file referenced can be uploaded on request. Trying to use i965 resulted in steam falling back to SW decoding:
Launched with:
VDPAU_DRIVER=va_gl LIBVA_DRIVERS_PATH=/usr/lib/dri LIBVA_DRIVER_NAME=i965 steam
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 info: User environment variable requested driver 'i965'
libva info: Trying to open /usr/lib/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_10
libva error: /usr/lib/dri/i965_drv_video.so init failed
libva info: va_openDriver() returns -1
ffmpeg error: Failed to initialise VAAPI connection: -1 (unknown libva error).
CVAAPIAccel: av_hwdevice_ctx_create() failed
libavcodec software decoding with 4 threads
With no arguments, Steam is unable to determine any libva driver and falls back to S/W decoding:
...
libva error: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null)
...
Nothing extracted yet.
First: I don't think this issue is similar to all the previous libva issues since steam upgraded from libva1 to libva2 a short while back and all those issues seem to be related to libva1 being required while linba2 is shipped by distro's. Since the vaapi2 update last november this should not be a thing anymore.
Your system information
Please describe your issue in as much detail as possible:
When streaming between my two computers (high-end gaming desktop to low power laptop) it should use hardware decoding using Intel VAAPI (since it has an Intel HD 620 inside and the option is enabled and libva is installed). Instead it fails at VAAPI and uses software decoding as a fallback.
(software decoding works, but the performance is not great - as is expected, not part of the bug)
Steps for reproducing this issue:
Expected: VAAPI accelerated decoding
Actual: libavcodec software decoding with 4 threads
Part of steam terminal output: https://gist.github.com/Peetz0r/c6fbc8de7fe2162d550fc542c1e8142d
vainfo in another terminal: https://gist.github.com/Peetz0r/ce72ceebb394cfedb48903d212ed0cab
The weird thing is that vainfo works fine outside steam, but breaks inside steam.
All the libva packages are installed for both x86_64 and i686 using dnf.
Specs of desktop:
Specs of laptop