Full specs in first comment.
So first of all, this is not a “Linux sucks” rant, I want to make that clear. I’ve been using Linux for over 10 years now. Started with Ubuntu, moved to Arch, now on openSUSE Tumbleweed on both my desktop and laptop. I’m a software dev by trade and sysadmin by hobby.
But why in the shit can Valve not get Remote Play on Linux in a useable state? Let me lay out my evening yesterday.
I took my car to the shop for an appointment that I knew was going to last 4+ hours, so I took my Steam Deck. I finished up Spider-Man 1 and moved on to Miles Morales. All of this was flawless (as was playing most of Spider-Man 1 on Tumbleweed, btw).
I got home and decided I wanted to remote play MM from my desktop to the Steam Deck in the living room. All wired, no wifi. The reason for this is that I want to use the power of my desktop to get high quality graphics, as opposed to the medium settings at 30 FPS I get with the Steam Deck. Note that I’ve done this with some games before, notably Persona 5 Royal, but it’s been a year or so.
I launched MM for the first time on the desktop after selecting Proton-GE 8.0-6 (since that’s what worked with SM1). Immediately, I was greeted with a warning that my drivers may be out of date. They aren’t, but whatever, I clicked okay and the game launched fine. Cool, that’s fine, I figured I’d just launch the game on desktop before I go back to the living room and connect with Remote Play. I messed around a bit to make sure it would play okay, set my graphics options, etc., it worked perfectly.
I went back to the Deck and clicked Remote Play. It attempted to connect, but threw me back to the library screen. Weird, but okay. I re-launched Steam on my desktop from terminal, so I could check the logs the next time. Tried to connect again, and it worked. Weird… but okay. Except after loading a save, I was again thrown back to my library screen, with no option to re-connect. I checked my desktop, and the entire game had crashed. Weird. So I rebooted my machine and Deck and tried again. Same thing.
Okay, fine, I figured, you know what, this is one of the things I have a Windows VM with PCIe passthrough for. So I booted the VM, booted MM, set graphics options, everything was great, cool. Went back to the Deck, and tried to connect. Again, it attempted for a second and then sent me right back to the library. That’s wild. So I rebooted the VM and the Deck and tried again. Got connected and loaded the game, it didn’t crash, alright, cool, we’re in.
Next, I started running into issues where I was getting random inputs on menus. Specifically only menus. Weird, but as long as my save doesn’t get deleted, no big deal, I guess. So I played for a few minutes, then noticed the frame rate was super choppy, even though the FPS overlay from the host was reporting 100+ FPS. The Deck overlay had errored out and was reporting 3000+ FPS, which obviously isn’t right. This is actually a problem I’d run into with P5R before, so I knew the fix was to go into quick battery settings and toggle the per-game profile. This fixed it, but only for a few minutes at a time. I don’t remember P5R having this issue so frequently, and it’s also a much bigger nuisance in a game that’s not turn-based.
I eventually gave up and just moved back to my desktop (Tumbleweed) to continue playing, where everything worked perfectly (minus the outdated driver warning). Needless to say, it was a very frustrating experience for me, and that’s not a good thing. I couldn’t imagine ever taking someone who’s never used Linux and dumping them into that situation. I really hope Valve works on stuff like this.
Didn’t read everything. But personally I had the best experience with Sunshine and Moonlight. Valve should just integrate them.
Ah, I didn’t even think about trying one of those. Will give that a shot, thank you!
You need to use both. Sunshine is the server software on the more powerful system, while Moonlight is the client on the less powerful system
I would imagine there are some legal reasons they haven’t yet since it uses a protocol made by Nvidia, but I really, really wish they could build it in. They run so much better than remote play.
Agreed. I’m using sunshine mainly because of the ability to run a custom command when connecting and diconnecting.
I do this to set a 16:9 resolution temporarily because i have a ultrawide, and i want to avoid black bars on the TV. And I’ve experienced that sunshine is just more reliable than steam’s inhome streaming.
There are so many variables here it’s gonna be hard to pin down.
My guess would be the crashes were the game not playing as nicely with Proton as it could. Maybe try a different version, e.g. non-GE Proton 8 or Experimental.
The weird choppiness and FPS I would guess is your network. I remember when Steam Link features first came out, it worked great but then would become horrible for a couple hours. Everything was wired in, no bandwidth hogs in the house. Well, turns out that since I was using Powerline Ethernet, it would go haywire with the data streaming whenever my girlfriend did laundry. The washer and dryer threw a fuckton of noise into the line 😆 So I bought a long cable and then it was all good.
Funnily enough, the crashes were Windows side, not Linux/Proton. Well, the stream was crashing on Linux, but not the game. But yeah, there are a lot of moving parts here, I agree.
Luckily, I got it working solid with Sunshine on Windows. Unfortunately, there’s not a Sunshine build for Tumbleweed, and I can’t be assed to compile it from source right now, lol.
Edit: Jesus, there are so many moving parts, I forgot which platform had which issue. I agree, there’s probably something funky going on with Proton and Remote Play. But I also got Sunshine working on Linux now, and it’s been flawless (after telling it which display to stream)!
Specs:
Ryzen 7 5800X
64GB RAM (32/32 Linux/Windows when Windows is running)
Radeon HD 6800 XT (Linux host)
GeForce 3070 Ti (Windows VM)Tumblweed host, Windows 11 VM, and Steam Deck all up-to-date.
Tumbleweed Steam is Flatpak on beta.
Windows Steam and Steam Deck are both on stable.What hypervisor are you using for windows in Tumbleweed for GPU pass though?
QEMU/KVM with virt-manager as my front end.
Thanks for that kind sir!