Sunshine worked brilliantly under Windows 11, but unfortunately on Linux it lacks the ability to
encode the video stream using my RX 7800 XT and microstutters like crazy.
I guess the question is did you set up VA-API and do you have an processor with integrated graphics?
When I set my instance up, I had to do just a bit of ID’ing since my processor/MB has a iGPU at device 0 that was for debugging purposes and wasn’t going to be up to snuff for encoding.
Yes I do have VA-API and no iGPU, so there wasn’t an easy fix.
I also see the same issue on Bazzite and CachyOS, and the same issue using Apollo and Sunshine. I’ve also deeply investigated network issues as the cause but I think that was a red herring.
Windows was fine out of the box and has specific AMD gpu codexes that the Linux build doesn’t have (I assume proprietary?) so that seems the most likely cause.
I don’t know if it’s the encoder or Wayland being Wayland, but there stutters on the stream (but not the host screen) using VA-API.
Using the same host/receiver on windows (but a different encoder) there’s no issue so not sure it’s related to VRR or framerate matching as many suggest.
No output errors at all. It actually runs at high frame rates and high resolution. No matter what res or frame cap or bandwidth limit it will microstutter in predictable ways :(
I’ve tried Sunshine and Moonlight, on both Bazzite (pre-installed and configured) and CachyOS (pacman and AUR).
Info: Found H.264 encoder: h264_vaapi [vaapi]Info: Found HEVC encoder: hevc_vaapi [vaapi]
after a bunch of messages about trying some codecs and setting bitrate and color depth for the found encoders. connecting with a client should show you no errors and a message with the selected encoder. you can try cpu encoding to see if that changes anything for a clue.
if the encoders are showing up as properly detected and selected in the logs, then you might want to look into something else as encoders are probably not the cause.
I have both strong opinions on things and suggestions.
The Windows software stack is completely independent of the Linux software stack. This doesn’t tell you anything about the problem. Trying Windows tells you that the hardware has the capability, but you could have learned that from a spec sheet.
If you want to solve the problem on Linux, make a post with the details of the problem and what you’ve tried so far as well as any logging that you can get out of Sunshine which would show you starting Sunshine and starting a stream.
Without vaapi support, sunshine falls to software encoding which means the encoding is running on your CPU and that is what is causing the stuttering, so to fix it you would need to install a version of mesa that’s been compiled with the correct flags (h264enc, 265enc).
The instructions for doing this depends on our distro. On Arch, amdonly-gaming-mesa-git is listed as an optional package for the AUR version of sunshine, amdonly-gaming-mesa-git is compiled with video-codes=all which will enabled the h264, h265 support.
I did exactly this but unfortunately it didn’t address the issue I was experiencing. I read the manual you linked and the support forum for Sunshine.
I posted about it in support forums and also got helpful advice about network latency, matching res and refresh rates to host, running Wayland only session, running game scope, using Apollo, etc.It unfortunately didn’t help.
I tried it on Bazzite (where it is preconfigured) and CachyOS and got the same result on both.
It suspect it’s the encoder but I think it could be a Wayland issue. I didn’t test X11 as that didn’t really suit my purposes.
I explored this issue pretty thoroughly and spent hours trying to solve it :(
Sunshine worked brilliantly under Windows 11, but unfortunately on Linux it lacks the ability to encode the video stream using my RX 7800 XT and microstutters like crazy.
Sunshine has managed to brick my displays twice on Linux. It’s wild how poor sunshine is on Linux.
Moonlight works flawlessly tho.
I guess the question is did you set up VA-API and do you have an processor with integrated graphics?
When I set my instance up, I had to do just a bit of ID’ing since my processor/MB has a iGPU at device 0 that was for debugging purposes and wasn’t going to be up to snuff for encoding.
Yes I do have VA-API and no iGPU, so there wasn’t an easy fix.
I also see the same issue on Bazzite and CachyOS, and the same issue using Apollo and Sunshine. I’ve also deeply investigated network issues as the cause but I think that was a red herring.
Windows was fine out of the box and has specific AMD gpu codexes that the Linux build doesn’t have (I assume proprietary?) so that seems the most likely cause.
Sunshine should be able to do hardware encoding for that GPU, it has support for VA-API
I don’t know if it’s the encoder or Wayland being Wayland, but there stutters on the stream (but not the host screen) using VA-API.
Using the same host/receiver on windows (but a different encoder) there’s no issue so not sure it’s related to VRR or framerate matching as many suggest.
I use Sunshine+moonlight to stream from my Linux desktop (7900xtx) to my Steam Deck and it works great. Even AV1 streaming works.
It works brilliantly on my Linux host with a 7800 XT, I think you might have an unrelated issue.
My 7900xt works great, could Be some other issue
is the output of the log (in the sunshine configurator web page) showing any codec errors? give that a read and report back to us with more info.
i had a similar problem before and it was related to permissions and how it was installed. the sunshine packages are finnicky as fuck on linux.
No output errors at all. It actually runs at high frame rates and high resolution. No matter what res or frame cap or bandwidth limit it will microstutter in predictable ways :(
I’ve tried Sunshine and Moonlight, on both Bazzite (pre-installed and configured) and CachyOS (pacman and AUR).
mine logs it as such:
Info: Found H.264 encoder: h264_vaapi [vaapi] Info: Found HEVC encoder: hevc_vaapi [vaapi]after a bunch of messages about trying some codecs and setting bitrate and color depth for the found encoders. connecting with a client should show you no errors and a message with the selected encoder. you can try cpu encoding to see if that changes anything for a clue.
if the encoders are showing up as properly detected and selected in the logs, then you might want to look into something else as encoders are probably not the cause.
Sunshine uses VA-API for AMD GPUs, works fine on my RX 6600
It works fine on my 7800XT.
They’re just confusing ‘This isn’t working for me’ with ‘This isn’t working for Linux’
Dual booting Windows and it works fine there, and there’s definitely encoders not present in Linux that are in windows.
Open to suggestions, or are you just here to have strong opinions about things?
I have both strong opinions on things and suggestions.
The Windows software stack is completely independent of the Linux software stack. This doesn’t tell you anything about the problem. Trying Windows tells you that the hardware has the capability, but you could have learned that from a spec sheet.
If you want to solve the problem on Linux, make a post with the details of the problem and what you’ve tried so far as well as any logging that you can get out of Sunshine which would show you starting Sunshine and starting a stream.
Without any other information:I read the fantastic manual.
It looks like you’re likely running into a documented problem: Mesa has disabled VA-API for legal reasons
Without vaapi support, sunshine falls to software encoding which means the encoding is running on your CPU and that is what is causing the stuttering, so to fix it you would need to install a version of mesa that’s been compiled with the correct flags (h264enc, 265enc).
The instructions for doing this depends on our distro. On Arch, amdonly-gaming-mesa-git is listed as an optional package for the AUR version of sunshine, amdonly-gaming-mesa-git is compiled with video-codes=all which will enabled the h264, h265 support.
I did exactly this but unfortunately it didn’t address the issue I was experiencing. I read the manual you linked and the support forum for Sunshine.
I posted about it in support forums and also got helpful advice about network latency, matching res and refresh rates to host, running Wayland only session, running game scope, using Apollo, etc.It unfortunately didn’t help.
I tried it on Bazzite (where it is preconfigured) and CachyOS and got the same result on both.
It suspect it’s the encoder but I think it could be a Wayland issue. I didn’t test X11 as that didn’t really suit my purposes.
I explored this issue pretty thoroughly and spent hours trying to solve it :(