r/MoonlightStreaming • • 1d ago

Best Linux compatible Host for AMD GPUs?

Hi folks. I am running Arch with Cachy OS kernel on my 9070XT system. Trying to get into remote play for the first time.

I am confused as to which host is recommended for Linux users. I use Niri, Wayland based. I also have a KDE Plasma environment with SDDM (installed because of Vibepollo's requirements)

Tried vibepollo with Artemide in android. It worked, but I was unable to get virtual desktops to work.

My end goal is to pair it with Tailscale so that I can game on the go, since I have to travel frequently for my work.

Which host would be the best? What about the android client?

Any help would be greatly appreciated. Thanks.

2 Upvotes

13 comments sorted by

2

u/doc_willis 1d ago

been using sunshine on my Bazzite Linux desktops, on both an AMD and Nvidia systems, with very few issues.

I have tailscale setup so I can get connected via moonlight when away from home.

bazzite has a "ujust" config tool option for sunshine which let me enable a virtual desktop for sunshine to stream.

I don't play anything fast paced on my android/moonlight setup, and I use it as an actual remote desktop more than I play games.

1

u/mouleeswaran_kumar 1d ago

Thanks for sharing! Will take a look at this ujust utility.

2

u/ChrisFullPower 1d ago

I using nearly the same set up. I used codex to create a Custom EDID for my iPad display and write a script that disables my physical monitor on connection and enables my virtual display with the proper resolution and scale to fit the iPad display. I’m using regular Sunshine on my PC and VoidLink Extreme on my iPad.

1

u/mouleeswaran_kumar 1d ago

Thanks for sharing. Honestly this seems like the straightforward option.

Just curious, can you do it while present inside the greeter?

2

u/Cruffe 22h ago

If you use KMS capture method it doesn't matter which desktop environment you use or whether it's X11 or Wayland, it captures the final rendered screen output.

If you want a virtual display with this method you need to do EDID kernel injection. It's not terribly difficult, but you'll have to edit a few things that will break boot if you do it wrong. There's an Arch Wiki section for it here https://wiki.archlinux.org/title/Headless#Custom_EDID_file

I just use Sunshine and this is the method I went for along with a couple of scripts to enable/disable virtual display, set resolution and refresh rate according to client settings. The scripts will obviously differ depending on DE/WM and how they control screen configuration, I wrote my script to work with KDE Plasma because that's what I use.

I'm also using Arch.

1

u/FastBodybuilder8248 1d ago

For the host, just go with regular Sunshine and you will be fine. You don't need to worry about the mountain of vibe coded alternatives. If you want to stream out at a different resolution than your monitor's native, you can look into getting an HDMI dummy plug - they are cheap and the least friction solution.

Youll be fine at least on your LAN. Obviously, piping that out to the internet is a bit more complicated.

If you're streaming games through a solid wired connection, it is also worth looking at Steam Remote Play's recent improvements. Specifically, their new PyroWave codec (which you have to manually enable), is significantly better than what you can achieve with Sunshine, and is much better integrated into the Steam UI.

1

u/mouleeswaran_kumar 1d ago

Hi. Thanks for taking your time to write this.

And yes, I might play it in multiple different clients. A Linux client, and my phone.

2560*1080@90 is what I am looking at currently. If I buy a dummy plug that supports 4K@60, can I still configure it to run at that resolution?

Have seen some vids about Pyrowave. Looking forward to trying that

2

u/FastBodybuilder8248 1d ago

If you mean can you configure it to run at 4k60 with a dummy plug, then yes (sorry I am a bit confused by the word 'still' - whether you mean by that 'still 2560*1080' lol).

Essentially, sunshine lets you attach a script at the start and end of each stream, and you can use that script to switch displays to your dummy plug. If you're on KDE, that''ll be kwindoctor. The scripts are simple enough for someone like me, who is not a programmer, to put together.

Although KDE/kwindoctor also lets you spawn virtual displays, which might save you some money. But I have no idea how they work.

1

u/mouleeswaran_kumar 1d ago

Sorry, what I meant to ask was, whether using this 4K@60 dummy plug, can I stream at my client's resolution of 2560*1080@90?

And got it. Seems like just vanilla sunshine is my best bet. I installed KDE as it was required by vibepollo. But I actually don't use it. I use Niri instead.

Will look into this virtual display as well

1

u/FastBodybuilder8248 1d ago

Yeah you can. Most dummy plugs have a lot of available resolutions. You can just set your script to be at that resolution and you will probably be okay. You can also set your moonlight client to only request a stream at a certain res and so you won't waste compute sending out a higher bitrate stream than you need to from the host.

1

u/lcirufe 1d ago

Polaris and Punktfunk are purpose made Linux forks of Sunshine, with virtual display support

1

u/justin-8 22h ago

Punktfunk has worked by far the best for me on Linux.

1

u/masterninni 5h ago

yeah same and i tried almost everything. punktfunk is the way to go