ValveSoftware / steam-for-linux

Issue tracking for the Steam for Linux beta client
4.22k stars 174 forks source link

[Feature Request] Provide a better Steam Remote Play experience #9129

Open SaltyBet opened 1 year ago

SaltyBet commented 1 year ago

Your system information

Please describe your issue in as much detail as possible:

TL;DR: The Sunshine/Moonlight experience is consistently superior to that of Steam Remote Play; I wanted to use this issue to both document similarities/differences between then and my experience while using both streaming solutions, and also request Valve developers to investigate why the difference is so noticeable between both streaming solutions, even when using the same set of hardware.

When directly comparing the performance/experience/feel of Steam Remote Play with that of the Sunshine/Moonlight combo, it is like night and day.

I've been reading/testing and wanted to document the similarities/differences I've found so far in this issue.

Table:

Feature Steam Remote Play Sunshine/Moonlight
App capture methods Game D3D12 RGB RGB + scale; Game Delayed OpenGL NV12; Game Vulkan RGB + libyuv + scale; Game polled D3D11 NV12; Game polled D3D11 RGB, Game threaded D3D9 NV12; Steam D3D10 NV12; others? N/A
Desktop capture methods Desktop DWM NV12; Desktop PipeWire DMABUF; NvFBC Desktop Duplication API; KMS; NvFBC; Wayland DMABUF; X11
Encoding support CPU H264; GPU H264; GPU H265 CPU H264; GPU H264; GPU H265
Protocol “custom low-latency network protocol” (https://store.steampowered.com/remoteplay/) Moonlight Protocols (https://games-on-whales.github.io/wolf/stable/protocols/index.html)
Framepacing support ? Yes
Controller support Steam Input ViGEm

I tested the following:

From what I could see and experiment with:

I truly would like to just use Steam Remote Play, as it is more convenient, but Sunshine/Moonlight provides a clearly a superior experience.

Is there anything Valve developers can do to improve this?

Additional files, below:

Sunshine/Moonlight stats:

sunshine-moonlight

Steam Remote Play CPU encoding:

CPU encoding.zip

Steam Remote Play GPU encoding:

GPU encoding artifacting.zip

joeknock90 commented 1 year ago

I am with you here @SaltyBet. Great write up and organization. I'll be following this one.

zacbre commented 1 year ago

I have noticed the same exact thing in my testing. Moonlight seems to be superior in streaming latency/performance for now. I really hope valve decides to better the support for remote play considering gamestream is going away.

trexx commented 4 months ago

The difference is night and day. With debugging enabled on Steam Link, Steam can often choose a capture method that introduces latency in the game. For example, in big picture mode, sometimes it opts to use Desktop DWM capture, which is really laggy but improves once a game is launched. A game like wreckfest, the capture mode changes mid game sometimes in between loading screens, and sometime it sticks with a less than optimal method. It usually requires that I restart the stream.

To add to the differences, Sunshine supports AV1 encoding now.

Some smaller quality of life improvements are also sunshines web interface for adding new streaming clients remotely.