I'm having the same issue but with AMDGPU
Interesting I just tried HEVC Encoding on a AMD RX 580. It's not the same issue. FFMPEG seems to set up correctly, but on the Client in this case a Steam Deck it never progresses past the loading screen. There is nothing in the log from the Client side indicating an error, But once you close or kill the game. Steam on the host is left in a completely non responsive state, in htop Steam has a core completely pegged at 100% usage until you send the process a sigkill signal.
Now with that being said, the behavior is different if the client is a Mac. One you click start on a Game, it stays on the loading screen forever. But in the meantime it is spamming the log with this error message
CLIENT: CVideoToolboxAccel: VTDecompressionSessionDecodeFrame() failed: -17690
CLIENT: Marking frame 20 complete with status k_EStreamFrameResultDroppedDecodeCorrupt
CLIENT: Video overflow (317.78ms queued), requesting keyframe synchronization
Once you close the game on the host, Steam goes back to a completely normal state.
FFMPEG's output on the log for the Host.
ffmpeg verbose: libva: VA-API version 1.20.0
ffmpeg verbose: libva: Trying to open /usr/lib/i386-linux-gnu/dri/radeonsi_drv_video.so
ffmpeg verbose: libva: Found init function __vaDriverInit_1_20
ffmpeg verbose: libva: va_openDriver() returns 0
ffmpeg verbose: Initialised VAAPI connection: version 1.20
ffmpeg verbose: VAAPI driver: Mesa Gallium driver 24.2.7 - kisak-mesa PPA for AMD Radeon RX 580 Series (radeonsi, polaris10, LLVM 17.0.6, DRM 3.57, 6.8.0-49-generic).
ffmpeg verbose: Driver not found in known nonstandard list, using standard behaviour.
ffmpeg verbose: Input surface format is nv12.
ffmpeg verbose: Using VAAPI profile VAProfileHEVCMain (17).
ffmpeg verbose: Using VAAPI entrypoint VAEntrypointEncSlice (6).
ffmpeg verbose: Using VAAPI render target format YUV420 (0x1).
ffmpeg verbose: Using CTU size 32x32, min CB size 16x16.
ffmpeg verbose: RC mode: VBR.
ffmpeg verbose: Block Level bitrate control: OFF.
ffmpeg verbose: RC target: 83% of 18000000 bps over 1000 ms.
ffmpeg verbose: RC buffer: 18000000 bits, initial fullness 13500000 bits.
ffmpeg verbose: RC framerate: 29125/489 (59.56 fps).
ffmpeg verbose: Using intra and P-frames (supported references: 1 / 0).
ffmpeg warning: Driver does not support some wanted packed headers (wanted 0xd, found 0x1).
ffmpeg verbose: Using level 4.1.
Did you find a workaround as this issue is still not fixed?
Did you find a workaround as this issue is still not fixed?
Yes, unfortunately the workaround is just to use sunshine / moonlight instead of steam remote play. Hardware Encoding works across all codecs, with no issue.
I'm experiencing this issue as well with a B580 on Lubuntu 26.04, with the ffmpeg log looking essentially the same.
A further note is that streaming to an Android device, only disabling hardware acceleration on the host will allow a proper stream. Streaming with HEVC disabled on the client alone will lead to a black screen with only a cursor visible (and controllable), plus the clientside Steam Link UI.
Additionally, while attempting to stream with hardware acceleration enabled, my journal is being spammed with a bunch of Intel driver of the same general makeup as this one:
Aug 01 02:19:04 kernel: xe 0000:28:00.0: [drm] Tile0: GT1:
ASID: 728
Faulted Address: 0x00000000fc510000
FaultType: 0
AccessType: 0
FaultLevel: 3
EngineClass: 1 vcs
EngineInstance: 0
Aug 01 02:19:04 kernel: xe 0000:28:00.0: [drm] Tile0: GT1: Fault response: Unsuccessful -EINVAL
Aug 01 02:19:04 kernel: xe 0000:28:00.0: [drm] Tile0: GT1: Engine memory CAT error [18]: class=vcs, logical_mask: 0x3, guc_id=6
Aug 01 02:19:04 kernel: xe 0000:28:00.0: [drm] Tile0: GT1: Engine reset: engine_class=vcs, logical_mask: 0x3, guc_id=6, state=0x249
Aug 01 02:19:04 kernel: xe 0000:28:00.0: [drm] Tile0: GT1: Timedout job: seqno=4294967169, lrc_seqno=4294967169, guc_id=6, flags=0x0 in steam [125415]
Nothing extracted yet.
Your system information
tar -zcvf ~/Desktop/steam-logs.tar.gz ~/.steam/steam/logs]steam-logs.tar.gz
Please describe your issue in as much detail as possible:
Describe what you expected should happen and what did happen. Please link any large code pastes as a Github Gist
If HEVC Video is selected on a client device under Remote Play, and Enable hardware encoding is selected on the Host Machine. Steam on the host will crash, and immediately restart. This will occur every time you attempt to start a stream. FFMPEG fails to start the hardware encoder.
[2024-11-15 21:19:40] ffmpeg verbose: libva: VA-API version 1.20.0
[2024-11-15 21:19:40] ffmpeg verbose: libva: Trying to open /usr/lib/i386-linux-gnu/dri/iHD_drv_video.so
[2024-11-15 21:19:40] ffmpeg verbose: libva: Found init function __vaDriverInit_1_20
[2024-11-15 21:19:40] ffmpeg verbose: libva: va_openDriver() returns 0
[2024-11-15 21:19:40] ffmpeg verbose: Initialised VAAPI connection: version 1.20
[2024-11-15 21:19:40] ffmpeg verbose: VAAPI driver: Intel iHD driver for Intel(R) Gen Graphics - 24.1.0 ().
[2024-11-15 21:19:40] ffmpeg verbose: Driver not found in known nonstandard list, using standard behaviour.
[2024-11-15 21:19:40] ffmpeg verbose: Input surface format is nv12.
[2024-11-15 21:19:40] ffmpeg verbose: Using VAAPI profile VAProfileHEVCMain (17).
[2024-11-15 21:19:40] ffmpeg verbose: Using VAAPI entrypoint VAEntrypointEncSliceLP (8).
[2024-11-15 21:19:40] ffmpeg verbose: Using VAAPI render target format YUV420 (0x1).
[2024-11-15 21:19:40] ffmpeg verbose: Using CTU size 32x32, min CB size 16x16.
[2024-11-15 21:19:40] ffmpeg verbose: RC mode: VBR.
[2024-11-15 21:19:40] ffmpeg verbose: Block Level bitrate control: OFF.
[2024-11-15 21:19:40] ffmpeg verbose: RC target: 83% of 18000000 bps over 1000 ms.
[2024-11-15 21:19:40] ffmpeg verbose: RC buffer: 18000000 bits, initial fullness 13500000 bits.
[2024-11-15 21:19:40] ffmpeg verbose: RC framerate: 29125/489 (59.56 fps).
[2024-11-15 21:19:40] ffmpeg verbose: Using intra and P-frames (supported references: 3 / 3).
[2024-11-15 21:19:40] ffmpeg verbose: All wanted packed headers available (wanted 0xd, found 0x1f).
[2024-11-15 21:19:40] ffmpeg verbose: Using level 4.1.
[2024-11-15 21:19:40] Video Encoder Changed
[2024-11-15 21:19:40] >>> Capture method set to Game Delayed OpenGL NV12 + VAAPI HEVC
[2024-11-15 21:19:40] >>> Capture resolution set to 1280x720
[2024-11-15 21:19:40] >>> Capture colorspace set to BT.601 limited range
[2024-11-15 21:19:40] ffmpeg error: Failed to end picture encode issue: 24 (internal encoding error).
[2024-11-15 21:19:40] ffmpeg error: Encode failed: -5.
[2024-11-15 21:19:40] CGameStreamVideoStageVAAPI: Error encoding: Input/output error
[2024-11-15 21:19:40] ffmpeg fatal error: Assertion pic->display_order == pic->encode_order failed at libavcodec/vaapi_encode_h265.c:770
Either disabling Hardware encoding on the host, or disabling HEVC video on the client stops this behavior.
Note: This issue is present on both Beta and Stable versions of Steam.
Steps for reproducing this issue: