ValveSoftware / steam-for-linux

Issue tracking for the Steam for Linux beta client
4.19k stars 173 forks source link

In-Home Streaming Freezes #5831

Open kisak-valve opened 5 years ago

kisak-valve commented 5 years ago

Issue transferred from https://github.com/ValveSoftware/Proton/issues/1713. @jardon posted on 2018-10-11T02:02:21:

Compatibility Report

System Information

I confirm:

I grabbed the log for Doom if that helps steam-379720.log

Symptoms

I wouldnt really consider this to be a compatibility report for a single game but more of a compatibility report that spans multiple games. When using In-Home Streaming from my desktop to another device, It appears that many proton games video stream freezes up on the client but are still running perfectly on the host.

Here are some details that I have observed:

  1. I have yet to find a native game that exerts these symptoms
  2. Not every proton game has the problem
  3. It appears that as I unfocus the window and focus on something else, the stream resumes as normal until refocused(although difficult to observe as many games minimize when unfocused).
  4. Most of them start streaming very briefly before freezing up. Usually not getting past the opening game credits
  5. I've tried just about every combination of streaming settings with little to no difference at all.

Game Streaming Tested

Working

Working with Issues

Borked

I realize that maybe this needs to be broken up into multiple bug reports but I thought that it might be useful to have a view from above on this one. I also realize that this may not even be a proton specific issue and may be in home streaming itself. If there is anything that I can do to help, I'll gladly do what I can. I mostly just dont know where to start.

Reproduction

  1. Configure Streaming host with the linked system specs
  2. Configure network and steam link or other device
  3. Install one of the borked proton streaming games
  4. Try to stream it to steam link or other device on the network
  5. Get really sad
kisak-valve commented 5 years ago

Possibly related to #5828, #5591.

ghost commented 5 years ago

There's more going on over simply using native so not really surprising that there are issues.

Since the client is what's affected, it does sound like a buffer has failed since streams and buffers are what's used to connect two devices over a network. Its not magical =)

It would help to know what triggers a refresh of the failed buffer when the current one has a problem such as if interaction with host PC does that like what is mentioned or if its [an] earlier [problem] such as with the encoder.

Seems like a good start since it does affect more than one game for someone who doesn't know where to start =)

Maybe only Valve can fix it. Depends if its an internal Steam related issue or an external one causing an internal problem. I don't think this one is external only based on this.

fazo96 commented 5 years ago

I have this problem with The Witcher 3 GOG Version which is running through wine and added as a non steam game. The game streams until the intro video starts to play, so only for like 3 seconds, then freezes right before the intro video. Controls and sound work on the client but the video stays frozen while the game plays fine on the host.

The only way to get it to stream is to start the game and then start streaming while the game is running, and this only works if the game is in windowed mode. What happens here is that the entire desktop is streamed instead of only the window (which is weird, since steam usually only streams the active window) and the stream works just fine this way except only a part of the actual picture is the game, since it's windowed.

I have not found a solution to this. However I tried DOOM, Hitman 2 and Metal Gear Solid V The Phantom Pain using Steam Play and Steam Link and these all work perfectly fine, only The Witcher 3 (GOG Version through Wine) has this problem.

fazo96 commented 5 years ago

After a steam beta update or something (not sure what was the cause) The Witcher 3 stopped freezing most of the time.

Then I switched to running it through proton thanks to the new feature to run non-steam games through proton and other than an improved performance I also got no freezing issues at all.

jardon commented 5 years ago

Alright I have a bit of an update on this. First of all, my system specs have changed and are now the following: OS: Ubuntu 18.10 (4.18.0-13-generic) CPU: Intel® Core™ i5-4670 RAM: 32GB GPU: Nvidia GTX 1060 6GB GPU Driver: 415.27 DE: GNOME Shell 3.30.1

I have retested the following games fullscreen and windowed mode and can confirm that the video stream does not freeze when the game is running in windowed mode:

There are others that I haven't tested but I dont currently have room on my hard drive and need to pick up another SATA cable to attach a spare drive I have. Rise of the Tomb Raider (native) also freezes when trying to stream it, but theres no fullscreen option and no launch options that I tried to make it windowed worked. Wow I'm blind. Found the windowed option in RotTR and now that one is working.

Running in windowed is a good short term solution to this problem. Hopefully Valve will have something for us soon.

howels commented 5 years ago

Definitely looks like the issue I see. Proton games freeze on the first frame of the stream if I use fullscreen and often kill the stream on the client if the game shows a window dialogue box or logo before entering full screen.

NoXPhasma commented 4 years ago

I have the exact same issue, but with Proton 4.11-7. Games freeze on launch or when I get into the game, the performance is really bad and there is also a problem with detection of the gamepad.

This happens in fullscreen as well as in fullscreen windowed mode.

Switching to Proton 4.2-9 completely fixes any of those issues.

System info: https://gist.github.com/NoXPhasma/301a67dc1406c3b14766507b0edc8290 Steam Link app on a Samsung NU8009.

Americanzer0 commented 4 years ago

I can confirm as well that I am experiencing this exact same issue, and have been able to replicate it on both Ubuntu 19.0 (Gnome) and Manjaro (Gnome) using both the offical Steam Link, and an android device using the Steam Link app. 4.2-9 works though and Proton 4.21-GE-2 (https://github.com/GloriousEggroll/proton-ge-custom) works as well for Halo: Reach...

loisgomez commented 4 years ago

I can confirm this same issue. A lot of games just freeze when streaming to my Steam Link from my Linux host system. Latest one that I ve found is the native version of Shadow of the Tomb Raider. I managed to get streaming to my steamlink working by first launching the game into windowed mode. And then connecting the steam linking to the running instance of tomb raider.

This seems like a valid work around to most games showing this behaviour. If the game is launched in windowed mode the freezing does not occur. Seems to happen mostly in games that use Vulkan or the proton transalation layer to vulkan both native and through DXVK.

webgeek1234 commented 4 years ago

I also confirmed this using the current 4.11 proton. I cannot stream any game that uses Vulkan as the native backend. For example, I want to use D9VK on Final Fantasy XIII because the hair effects are rendered properly there which are broken on the default OGL translation layer. But when streaming with D9VK enabled, the stream hangs on game start. But streaming works as expected with the default OGL translation layer. Another example is Obduction, which uses DX11 and thus defaults to DXVK. I get the splash screen when starting to stream, then it hangs while continuing to run properly on the host. I have not yet tested running anything in windowed mode, will try that asap. But even if that is a workaround, this is still a pretty experience breaking issue and I hope it gets more attention internally.

System Information: OS: Fedora 31 Kernel: 5.4.12-200.fc31.x86_64 CPU: AMD Ryzen 3950x RAM: 64 GB (4x16GB GSKILL Neo 3600) GPU: EVGA Nvidia Geforce 1080 TI FTW3 GPU Driver: Proprietary 440.44 packaged by negativo17

af7567 commented 4 years ago

Same problem here still. I had this problem with Shadow of the Tomb Raider but sometimes got it working by connecting to the stream when the game was already running. I am now having the same problem with Plague Tale: Innocence. It works ok in windowed mode, but full screen or borderless the video freezes. I did get it to work in full screen mode by connecting to the stream after the game was already running, but then the controller wouldn't work and the steam overlay was stuck showing a popup that I was connected to the stream. I had to alt-enter to go to windowed mode and then the controller and steam overlay started working again. alt-enter back to full screen and the video freezes on the stream like before.

OS: Slackware64 Kernel: 5.4.8 CPU: Ryzen 5 2600 RAM: 16GB GPU: Nvidia GTX970 Nvidia driver 440.44

stephensrmmartin commented 4 years ago

I'm having this issue on Fallout 4.

Fallout 4 works great on the host machine. When streaming to steam link, the video freezes at the intro on the steam link. It continues playing as normal on the host machine. The audio and input still work. It is only the video that freezes. Specifically, it's only when FO4 is the active window that the video freezes. I can alt-tab to another window, or to BPM, and the steam link renders video/audio/input normally. In sum: FO4 works fine on host. When streaming to steam link, FO4's video stops working on the steam link, but audio/input work fine.

I've tried: Fullscreen, windowed, borderless windowed. I've tried each option with the game running before streaming as well.

howels commented 4 years ago

Happens with Proton games still, whether windowed mode is used or full screen. Proton 5.0 and latest steam client. Only Shadow of the Tomb raider works.

howels commented 4 years ago

I tried a few times to get things working recently - using borderless windowed modes. However most games freeze their video stream after a few frames with the audio continuing. It's like the capture has failed somehow. Very strange.

underdoeg commented 4 years ago

I can confirm the same issue. as soon as the game is focused "project session" with proton 5 in this case. the streaming stops. input and sound seem to work.

bittylicious commented 4 years ago

Interestingly, as commented by @fallenguru on https://github.com/ValveSoftware/steam-for-linux/issues/6516#issuecomment-533252969 this issue doesn't appear to affect Proton 4.2-9. I was able to remote play just fine.

After getting it to work on 4.2-9, I have also been able to repeatedly get it to work on 4.11-13. I'm not sure why I needed to try with 4.2-9 first.

I cannot get it to work still on 5.0-5. In fact, if I Alt-tab on the host to another window (e.g. a terminal), streaming starts again. It's only when Alt-tabbing to the game that streaming stops. It's as if the Proton window cannot be captured in 5.x.

bittylicious commented 4 years ago

I think I spoke too soon - it appear sto depend on the game.

For instance, Sonic and All Stars Racing Transformed Collection works just fine under 4.2-9 and then 4.11-13. Sonic All Stars Racing (a later game) does not work at all under any Proton 4.x at least.

Maybe it's related to the Direct X version? Sonic (Transformed, the one that works) is DirectX 9, Sonic All Stars Racing (the one that doesn't work) is DirectX 11.

bittylicious commented 4 years ago

I have a new theory. Indeed, this is indirectly related to the DirectX version. It is possible that:

Games using DXVK (the Vulkan DirectX driver) do not work with Steam Remote Play

I was able to get my DirectX 11 game to work by changing the game's launch options to:

PROTON_USE_WINED3D=1 %command%

This makes it use the OpenGL-based wine3d instead, which I believe is quite a bit slower. See https://github.com/ValveSoftware/Proton#runtime-config-options for other command line options.

Can others see if this is the issue?

fallenguru commented 4 years ago

Games using DXVK (the Vulkan DirectX driver) do not work with Steam Remote Play

No. While the problem only occurs with Vulkan games (DXVK, DX9K, native -- doesn't matter) in my experience, it doesn't affect all of them, or all the time, or on all machines. I suspect there isn't one underlying factor but multiple, maybe even a race condition in the mix. My (Ubuntu) rig hasn't had this problem in months, my wife's (Linux Mint) still doesn't work. Same kernel, same GPU + mesa, same Steam version. No, it isn't Gnome vs. Cinnamon, either. Been there, tested that.

howels commented 4 years ago

I've also tested multiple Steam host options, multiple compositors, multiple games and cannot see a pattern. I'm using Ubuntu with a modern Nvidia card on the Nvidia closed-source drivers and there should be nothing preventing it from running. It's down to the capture as the stream will start but freeze on the client after 1-5 seconds while the game plays fine on the host. Using a proper Steam Link and Steam controller as the client.

As it stands I cannot use Remote Play under Linux as I am forced to run from one end of the house to the other to quit games when they fail to stream.

Please can we get some proper testing for Remote Play under Linux, the feature is totally unreliable. Remote Play under Linux has been in limbo since it was introduced.

Semperverus commented 4 years ago

I want to second this issue. I'm currently using an AMD RX480, Ryzen 1700x, Arch Linux latest kernel (5.6) on KDE Plasma 5.18 (if I recall correctly)

loisgomez commented 4 years ago

I have workaound this issue by launching all games in windowed mode in 1080p and avoiding big picture mode, launching the stream directly into desktop mode. This way 99% of the time I am able to stream play nicely most games.

Semperverus commented 4 years ago

@loisgomez do you think part of my problem is the fact that my center monitor is 4k? I play windowed-fullscreen on most of my games but I still get this problem. I wonder if setting that monitor to 1080p would fix the issue.

hovo1990 commented 4 years ago

@kisak-valve This is really strange behavior. I am having this issue as well, but so far only for Halo Reach.

Launching from Linux host to Linux client, after 3 seconds the intro video freezes, so far the best solution that I have found is to have another application always on top (like gedit). In this case, it does not matter whether its full screen, borderless, or windows, but streams at lower fps.

This is the first time I have noticed such a problem.

I have played other games and no such issue was noticed for the following games, but some games have rumble and others don't:

Street fighter 5 Injustice 1 (no gamepad rumble) Darksiders 2 deathinitve edition Borderlands Enhanced edition Darksiders deathinitve edition Kingdom come deliverance Shadow of war (no gamepad rumble) Shadow of the tomb raider(native)

hovo1990 commented 4 years ago

I have workaound this issue by launching all games in windowed mode in 1080p and avoiding big picture mode, launching the stream directly into desktop mode. This way 99% of the time I am able to stream play nicely most games.

Have tried this with Halo Reach, but the FPS is lower on the remote host than local host.

loisgomez commented 4 years ago

Definitely I can workaround the issue by streaming games in windowed mode in 1920x1080 resolution. Works 100% with all games I've tried, native + proton as well. If i try to use my monitor native resolution or full screen the screen will just freeze and show the red icon on the corner.

@hovo1990 If you are seeing 60fps that is expected. As streaming is capped to 60fps

hovo1990 commented 4 years ago

@loisgomez I mean the only issue where freezing happens is with Halo Reach, with other games no such issue so far.

I mean the frame rate on the remote machine is fine (over 60 fps), but on the client-side is sub 60 fps (close to 30 fps) if I launch in windowed mode.

Update: latest Steam Client Beta update has not fixed the problem in Halo Reach.

Update 2: Bulletstorm, Batman Telltale games and Street Fighter 5 work fine with streaming, is there a way to log streaming, which could help?

hovo1990 commented 3 years ago

Ok, Just tried Sniper Elite 4, freezes and also cannot change to windowed mode (passing -windowed parameter in launch options does not work)

Update 1: Just tried through VNC on POP OS 20.04 (Vino VNC), it also freezes, have to hold alt-tab, so the games updates. Is this due to DXVK or some bug in X Server?

Update 2: Through VNC changed to windowed mode (from broken launcher), now game is vibile through VNC. But remote play still freezes.

Update 3: There is an alternative try Sunshine, https://github.com/loki-47-6F-64/sunshine, setting up takes time, but sniper elite 4 works well in windowed mode at least.

Update 4: Using the repository Steam version, and not the flatpak version has solved the issue.

rkitover commented 3 years ago

I cannot run any game from a linux host via "remote play"/"steam link", as others have noted for some games using PROTON_USE_WINED3D=1 %command% makes it work. I'll also tried the 1080p windowed solution.

Any updates from the developers on this? This was extremely frustrating to debug and it took me a couple of weeks to even find this issue.