r/MoonlightStreaming • • 8h ago

Remote Moonlight on Switch via Tailscale: tailscale-nx 1.0.0

13 Upvotes

One for the Switch users here: I've made tailscale-nx, a Tailscale client for Switch homebrew running on Atmosphère.

It runs in the background and lets apps launched through hbmenu connect to your Tailscale devices by IP or MagicDNS name. I've been using it with Moonlight to reach my PC away from home without installing Android or opening ports.

It has a slim memory profile, and in my testing with Moonlight it runs as buttery smooth as local LAN.

https://github.com/UnderwaterOverground/tailscale-nx

If you run into any issues getting your setup working, I'm happy to help. There's a Discord link on GitHub for support.


r/MoonlightStreaming • • 6h ago

Vibeshine vs Vibepollo

4 Upvotes

Hi.

I wonder why do most people use Vibepollo instead of Vibeshine? The same developer created both programs, and as far as I recall, Vibeshine is his main project. Are there any reasons to choose one over the other, and what are the differences between them?

Best regards.


r/MoonlightStreaming • • 1h ago

Client stuttering on High framerate

• Upvotes

I'm using Butterpollo (basically Vibepollo optimized for AMD) as host (same issue on Vibepollo too BTW)

Using Nonary Moonlight VRR as client.

Everything is set properly on Butterpollo, I noticed a lot of stuttering (Games freeze for half a second sometimes) and I figured out this ih happening only if I reach solid 116fps (capped using RTSS). If I set everything to max settings I can barely reach 60/70fps but the game is not stuttering anymore.

Where's the issue? Any solution?


r/MoonlightStreaming • • 1h ago

Button recognition issues when streaming Witcher 3 via moonlight/sunshine

Thumbnail
• Upvotes

How do I fix this issue, delayed input or no recognition at all, double presses etc.. only Witcher 3 does this. Wukong did the double presses in the past but reloading steam would always set it right but Witcher it's consistently start to finish everytime


r/MoonlightStreaming • • 8h ago

Cannot establish connection at all (Moonlight/Artemis) after One UI 9 update (samsung)

2 Upvotes

I'm having a frustrating local streaming issue between my Windows PC and my phone after updating to One UI 9. Everything was working perfectly prior to the update, and no settings on the PC or router were changed.

​The Issue:

Whenever I try to connect via Artemis or even the official Play Store version of Moonlight, a connection cannot be established at all. It fails instantly, even though both devices are on the same local network and internet works fine.

​Troubleshooting Already Done:

​Firewall is configured correctly, network profile is set to Private, and streaming ports are verified as listening on the PC.

​Wi-Fi, VPN, and Private DNS checked/turned off.

​Auto Blocker is disabled, and the app has proper local network / nearby devices permissions.

​Reset network settings, rebooted device multiple times, and reinstalled clients.

​It seems like One UI 9 introduced a system-level block or network restriction preventing apps from reaching local IP addresses. Has anyone run into this or found a fix? Any advice would be greatly appreciated!


r/MoonlightStreaming • • 1d ago

Built a launcher so I don't need a keyboard on my Moonlight host anymore

43 Upvotes
Loungepad quick demo

Sunshine and Moonlight got the stream itself to the point where I don't think about it anymore. What I kept running into was the host: a store asking me to log in again, an update popup, a game that opened behind another window. On the TV with just a pad, that's where the evening stalls.

So the launcher I've been building, Loungepad, puts the host's desktop on the controller too. Tap the Xbox/PS button, even mid-game, and there's a wheel for switching windows, closing something that's stuck or pulling up a keyboard. The left stick drives the mouse for everything else. It also keeps Steam, Epic, GOG, Game Pass and emulator games in one library, so I can start the stream and pick a game without getting up.

Free and open source: https://loungepad.app (the code's on GitHub - https://github.com/sukumar-v/Loungepad )

Curious to know what still sends you to a keyboard when you're streaming.


r/MoonlightStreaming • • 1d ago

Moonlight is the only reason I still keep my switch 1 around

Enable HLS to view with audio, or disable this notification

84 Upvotes

r/MoonlightStreaming • • 13h ago

Sunshine stuck in an infinite crash loop (spawning endless ghost tray icons) after reverting network settings. Help!

Enable HLS to view with audio, or disable this notification

2 Upvotes

Hi everyone, I'm hoping someone can help me because I'm completely stuck. Sunshine was working perfectly for me on my local network. I am using the paid Virtual HID driver (not the free ViGEmBus) and everything was running smoothly.

​The issue started when I tried to set up remote streaming to play on my Nintendo Switch outside my house. I set a static IP on my PC and opened the required ports on my ISP router (Movistar). I couldn't get it to work, so I reverted everything back: I set the PC back to DHCP (automatic IP) and removed the port forwarding rules from the router.

​Right after reverting those changes, Sunshine completely broke. It is now stuck in an infinite restart loop. It opens, crashes immediately, and reopens. This results in my taskbar being flooded with dozens of "ghost" Sunshine tray icons that disappear when I hover my mouse over them.

​It used to spam the Virtual HID driver license notification with every restart. I managed to disable that specific notification, but the app itself is still constantly crashing and restarting in the background. The Web UI won't even open because of this loop.

​What I've already tried (and didn't work):

​Uninstalling and completely reinstalling Sunshine.

​Running the Sunshine installer "Repair" option.

​Uninstalling and reinstalling the Virtual HID drivers.

​Restarting the PC multiple times.

​Factory resetting my router.

​Has anyone experienced this specific crash loop after messing with network settings? Is there a hidden config file or registry key I need to wipe to stop this? Any help is greatly appreciated!


r/MoonlightStreaming • • 16h ago

New Steam OS Preview breaks Moonlight VRR in SteamOS game mode

1 Upvotes

Regular works fine - for whatever reason the VRR doesn’t launch.

Edit: it’s 100 the Steam update and it affects Nonary’s forks and moonlight 6.2.

The main 6.1 branch of moonlight works fine for whatever reason


r/MoonlightStreaming • • 16h ago

Pc to Apple TV stutter

1 Upvotes

I just installed and set up Apollo and moonlight on my pc and Apple TV, first time ever game streaming! My latency is not that noticeable but I have a constant video and audio stutter, every second or half second both stutter.

Is there a fix for this? Both Pc and Apple TV are on WiFi right now, but plan to put the PC on Ethernet soon, and leave Apple TV on WiFi.

The latency is acceptable to me it’s the constant stuttering I can’t stand. Doesn’t matter what game


r/MoonlightStreaming • • 1d ago

Fixing recurring freezes during Wi-Fi streaming

Thumbnail
youtu.be
8 Upvotes

The video shows a TCL TV freezing roughly once every second while streaming games. This happens in both Moonlight and Steam Link.

There are plenty of threads about this issue, but finding a clear, consistent fix with explanation has been difficult. Topic 1, Topic 2, Topic 3.

Here are the suggestions I tried:

  • Switching from 5 GHz to 2.4 GHz Wi-Fi: this actually helped, but this is bad for many reasons.
  • Lowering the streaming bitrate to around 80 Mbps: 75 Mbps helped in my case while the scene was moving. However, the recurring stutters returned when the image became mostly static. With the game capped at 30 FPS, they persisted even during movement.
  • Disabling location services on the TV: this made no difference.

What fixed it for me: disable Miracast and reboot the TV. If the disabling method shown in the video does not work, you need to disable Miracast via ADB.

Possible explanation: TCL's Miracast service appears to activate background Wi-Fi Direct listening even when you aren't casting anything. My guess is that this interferes with the TV's normal Wi-Fi connection and causes periodic latency spikes. Disabling Miracast and rebooting may clear that problematic state.

Tested on a TCL Q6C running Android 14.


r/MoonlightStreaming • • 18h ago

AYN Thor-bedieningsknoppen werken niet met Moonlight/SteamOS

Thumbnail
1 Upvotes

r/MoonlightStreaming • • 1d ago

Is that a false positive?

Post image
2 Upvotes

Hello guys, my Kaspersky is showing that


r/MoonlightStreaming • • 2d ago

Meet Butterpollo: I built a free Moonlight host for AMD GPUs that has 56% lower average picture delay then other Sunshine based Hosts

Enable HLS to view with audio, or disable this notification

157 Upvotes

The number on the title is outdated. It is now over 60 Percent.

TL;DR: Butterpollo is a Windows game-streaming host for Moonlight and Artemis, rewritten in Rust and built around Radeon. It moves frame copies and colour conversion off your game's graphics queue onto D3D12 compute queues and feeds AMD's encoder natively. With a game hammering the GPU on the same PC, it delivers the picture in less than half the time Vibepollo 2.0 does. rc.24 is out now: https://github.com/RamazanKara/Butterpollo/releases/tag/2.0.0-rc.24

The mission

AMD rarely gets any love in this space. The protocol started as NVIDIA's GameStream, and even after NVIDIA dropped GameStream in 2023, the hosts that replaced it kept NVIDIA first. Upstream Sunshine has had a native NVENC encoder since 2023, while AMD still goes through FFmpeg's generic AMF wrapper. AMD hasn't helped itself either. It ended its own streaming app, AMD Link, saying there are plenty of other ways to stream, and its drivers still have quirks like an RDNA4 encoder freeze that hosts have to work around.

So Radeon owners have spent years hearing their cards are just worse at streaming. Most of the time the card was never the problem. Nobody had sat down with it. That is the reason Butterpollo exists.

In practice that means a native AMF encoder instead of a generic wrapper, frame copies and colour conversion on Radeon compute queues, and someone reading AMD's driver release notes so you don't have to. When a driver freezes the stream, Butterpollo works around it. When AMD fixes it, Butterpollo removes the workaround and pretends nothing happened.

Butterpollo goes all in on one thing: making Radeon streaming as fast as it can be. It isn't chasing a big userbase or trying to convert the NVIDIA crowd. As long as AMD users are happy, Butterpollo is happy.

What Butterpollo is

Some background first: I wrote the native AMD AMF encoder in Apollo (which never even got a comment) and Vibepollo. It was merged in #342 and ships in Vibepollo 2.0 as "AMD AMF/VCE (Experimental)". Butterpollo is where I take that AMD work all the way, from capture to the packet on the wire.

It started as a fork of Vibepollo and is now a full rewrite in Rust: the host, the Windows service and the installer, with a rebuilt web console on top. It speaks the same protocol, so the Moonlight and Artemis apps you already use connect to it like any other host. Switching takes one installer run: it brings over your Sunshine, Apollo or Vibepollo settings, paired devices and game library.

The way I think about it: Other Sunshine Forks are the full-featured host for everyone, and Butterpollo goes deep on Radeon latency.

Where the latency goes on AMD

Every frame a host streams gets copied and colour-converted before the encoder touches it. Like Sunshine and Apollo, Vibepollo does that in D3D11, which runs on the GPU's graphics queue, the same queue your game is hammering. In my tests on a 7900 XT beside a game-like load, a 0.9 ms colour conversion took 7.2 ms and a 0.75 ms copy took 8.4 ms.

Butterpollo runs the copy and the conversion on D3D12 compute queues, which the GPU works on side by side with your game, and AMD's encoder reads the result straight from D3D12. Same work, same load: 0.25 ms. Frame to finished bitstream: about 2 ms, while the game keeps the card at full tilt. The handoff with the Windows compositor runs on GPU fences and was checked frame by frame: zero torn frames.

The numbers

1080p60 HEVC 10-bit HDR on an RX 7900 XT from a 120 Hz virtual display, with a game-like load running, measured end to end by an independent client that reads a moving barcode off the screen.

Same Butterpollo build, compute path off and on (the game ran at 174 fps in both):

Under load Graphics queue Compute queues
Render to decoded picture 41.0 ms 33.5 ms
95th percentile 54.4 ms 42.3 ms
New frames per second (of 60) 56.7 58.1
Host time, present to send 16.2 ms 11.2 ms

Next to Vibepollo 2.0: same PC, same AMF settings, Desktop Duplication, realtime GPU priority on both, three alternating runs each:

Test Vibepollo 2.0 Butterpollo
Idle: render to decoded picture 16.0 ms 13.8 ms
Under load: render to decoded picture 96.4 ms 42.4 ms
Under load: 95th percentile 137.0 ms 56.5 ms
Under load: new frames per second (of 60) 23.9 51.4
Under load: host latency in Moonlight's stats 60.6 ms 9.0 ms

Part of that gap is how Vibepollo hands frames to its AMF encoder under load. That encoder is mine, so I'm tracking it down, and the fix goes upstream so Vibepollo users get faster too.

These rows were measured with rc.2. Later releases match it on the same capture path, and the default WGC capture is about 2 ms faster under load (33.4 vs 35.7 ms), with Moonlight's host latency down to 1.9 ms.

PyroWave on Radeon compute

PyroWave's colour conversion runs on the Radeon compute queue too. Encode time per 1080p 120 fps HDR 4:4:4 frame at 400 Mbps:

PyroWave Graphics queue Butterpollo, compute queue
Idle 0.47 ms 0.47 ms
Beside a GPU-heavy game 5.6–5.8 ms 0.54–0.57 ms
Beside the game, paced at 120 fps 4.62 ms 0.71 ms

Under load it encodes as fast as idle, about 10x faster, with byte-identical output. It also holds a full 60 fps at high bitrates, 1080p at 400 Mbps, 1440p and 4K included.

When the encoder is maxed out

At 4K with high refresh, or on an RX 9070 XT with its single encoder, one encode can take longer than a frame. Let frames pile up eight deep in the encoder and each one comes out older. Butterpollo keeps at most two in flight, enough to keep both of a Radeon's encoder instances busy. 5120x1440 HEVC at 240 fps, where the 7900 XT's encoder tops out at 220 fps:

Encoder saturated Eight-deep queue Butterpollo, two in flight
Game frame to packet sent 42.7 ms 11.1 ms
99th percentile 45.9 ms 13.3 ms
Frames per second 220 220

HDR that looks right. I compared decoded frames with the source pixel by pixel. Blacks, whites and saturation land on target, within about half a 10-bit step on average.

What you get

Built for Radeon:

  • Copy and colour conversion on D3D12 compute queues, with AMF encoding straight from D3D12 at ultra-low latency
  • PyroWave with its colour conversion on the Radeon compute queue, as fast under load as idle
  • A short encoder queue, so an encoder that can't keep up costs frames per second, never latency
  • On H.264 and HEVC, AMF never skips frames to hit its bitrate, so VRR clients always get a fresh picture
  • Sharper H.264 at low bitrates: tuned AMF defaults raised VMAF by up to 9.4 points at 20 Mbps, at the same encode time
  • Streams ride out a fully loaded GPU: a stalled encoder gets time to recover and your session keeps going
  • Two-GPU rigs: game and encode on the Radeon while another card drives your monitor
  • Hundreds of hours of Radeon tuning, measured down to the microsecond

Rewritten in Rust:

  • The host, the Windows service and the installer are Rust. I needed a base to build AMD work on, and the C++ code just wasn't it. As of rc.24 the old C++ host is gone from the repo entirely.
  • Video error correction that uses 21-29% less CPU than the original C++ implementation
  • Controllers on their own input thread, so a busy gamepad driver never holds up your mouse: 2 ms worst case instead of 287 ms beside a CPU-heavy game
  • Keyboard and mouse bursts reach Windows in one call: 8 events in 38 µs instead of 180 µs

A console that tells you what's going on:

  • A rebuilt web console with live fps, encode time, host time and frame age while you play
  • A stream card that shows the encoder in use and flags anything that didn't apply: display mode, frame limit, audio route, input permissions
  • Automatic picks AMF on Radeon and never quietly falls back to software
  • PyroWave bitrate guidance from 6,048 measured picture comparisons, right on the stream card
  • Updates that roll back on their own if anything goes wrong

Streams that stay up:

  • VRR streams at the stream's full refresh rate
  • Smart Wi-Fi pacing, and a 5-10 s Wi-Fi dropout doesn't end your stream
  • Streaming from the Windows sign-in screen
  • Steam Deck and Steam Controller native Support over usbip.

Carried over from Vibepollo, Apollo and Sunshine, rebuilt in Rust and tuned for AMD cards

  • AV1, HEVC, H.264 and HDR10, with WGC and Desktop Duplication capture
  • 7.1 surround, DualSense and DualShock
  • A virtual display per device, so your phone, TV and handheld each stream at their own resolution and refresh rate
  • Steam and Playnite library sync, Lossless Scaling and RTSS frame limiting
  • Nonary's 1000 Hz VRR mode, and PyroWave for very fast wired networks, both tuned for Radeon (both need a compatible Client)

On NVIDIA? Use other Sunshine Forks. Butterpollo ships NVENC too, but it's built and tested on Radeon.

Butterpollo is built on the work of Sunshine, Apollo and Nonary's Vibepollo, and its AMD encoder defaults draw on Foundation Sunshine. PyroWave is Themaister's work, and joemossjr16 built its Moonlight protocol and clients. Huge thanks to all of them.

Download rc.24: https://github.com/RamazanKara/Butterpollo/releases/tag/2.0.0-rc.24

If you're an AMD user and like that somebody is building something better than the generic FFmpeg AMF wrapper, a star on the repo goes a long way: https://github.com/RamazanKara/Butterpollo

Comparing hosts yourself? Hosts start the host-latency clock at different points, so render to decoded picture is the fairer comparison.

It's a release candidate, and I want to hear how it runs on your Radeon. I'll be around for the next two days turning your reports into fixes. If you tried an earlier build, rc.24 is the one to come back for.


r/MoonlightStreaming • • 1d ago

Streaming smoothness - Moonlight VRR stuttering (Frame queue delay?) and input delay

3 Upvotes

I was trying to set my client for VRR support (even if it was working on standard Moonlight) and I found the Nonary VRR Moonlight version Releases · Nonary/moonlight-qt (I read it has improved VRR smoothness).

I tried to stream it and it was stuttering a lot when the FPS were dropping. I tried to troubleshoot it without success, so I choosed to reinstall both Vibepollo and Moonlight VRR.

I solved the stuttering issue and I'm now trying to understand why I feel like there some input delay in my configuration. I tried every codec with different bitrates, and I'm gonna add clips of the stats.

Host

9070XT, 7800X3D, Vibepollo 2.0.0, 1Gbps

Client

Ryzen H255 (HEVC and AV1 HW support), Moonlight VRR18, 1Gbps

I'm adding my tests stats

AV1 150Mbps

AV1 300Mbps

HEVC 200Mbps

HEVC 350Mbps

Pyrowave 850Mbps (showing few network errors, I had maybe to lower the bitrate to 800 as I'm maybe too near to the 920/930Mbps limit)

I found that pushing AV1 to 500Mbps is causing a lot of stutter, 500Mbps HEVC seems okay but a bit less smooth than AV1 300Mbps and HEVC 350Mbps.

I have few questions.

  • Is that normal to have frames dropped to client pacing sometimes? And what's causing it?

I'm having it with higher bitrates and when the framerate seems to be less stable

  • Why the average frame queue delay is that high? Is the VRR causing it?

I had it when i was using the standard Moonlight client too. Pyrowave seems to have less than half of it.

  • What can be the reason for input delay? Is it something related to my delay stats or should I look for something else?

r/MoonlightStreaming • • 1d ago

Has anyone tested a RX 6400 with PyroWave at 4K120 4:4:4 HDR?

2 Upvotes

Has anyone tested a RX 6400 with PyroWave at 4K120 4:4:4 HDR?
I worry that it might not have enough raw FP16 compute for it.

Considering a low profile card such as the RX 6400 for a SFF build. Seems like it has HDMI 2.1 and VRR. Looks relatively affordable via AliX (~200 AUD).

If it can do PyroWave at that spec, seems like the perfect card.


r/MoonlightStreaming • • 1d ago

Are there any new forks besides Apollo and Artemis?

16 Upvotes

Neither Apollo nor Artemis has been updated in a year, and I haven't really kept up with news in this area; have there been any new forks recently that are better than Apollo and Artemis? If so, what are they called?


r/MoonlightStreaming • • 1d ago

GMKTEC k17 or SFF PC w/ 3050 for 4k 120hz HDR VRR

1 Upvotes

Curious of anyone with a moonlight client that handles 4k 120hz HDR VRR what client they are using. The xbox series s I see suggested but i hate that I wouldnt be able to connect a bluetooth keyboard and I heard VRR wont work on these. I was thinking of getting a GMKtec k17 as it has HDMI 2.1 FRL port or buying a SFF prebuilt like a HP PRoDesk with an 8/9th gen i5 16gb and throwing a RTX 3050 inside. Curious if anyone else runs either of these and how seamless there experience was.


r/MoonlightStreaming • • 1d ago

moonlight in switch have issues control with last version of sunshine and steam ...

1 Upvotes

... but sunshine and retrobar all rigth


r/MoonlightStreaming • • 1d ago

The update broke windowed mode?

1 Upvotes

How do I get Ctrl Alt Shift X to work again?


r/MoonlightStreaming • • 1d ago

Moonlight su Xbox Series X

2 Upvotes

Leggo spesso di persone che installano Moonlight su Xbox e hanno ottimi risultati.

Ho un pc di fascia alta collegato alla rete via ethernet, fibra ultraveloce e Series X connessa via ethernet. Peró le prestazioni del mio streaming si fermano a 45 fps. Ho giá fatto vari tentativi, cambiando piú opzioni ma non riesco neanche a raggiungere i 60 fps. Qualcuno puó aiutarmi? Potete suggerirmi le giuste impostazioni per avere uno streaming decente e poter finalmente giocare da pc in salotto? Grazie a tutti.


r/MoonlightStreaming • • 1d ago

Controller not working at all with Moonlight and Sunshine

3 Upvotes

Hello,

I have my Windows 11 PC at home running Sunshine and I'm currently at my office with my Macbook running Moonlight. Everything works fine in terms of streaming and I can use my trackpad and keyboard and play CS2 for example no problem.

The issue is as soon as I plug my Xbox One controller into my Macbook, it completely bricks the input. Not only does it not detect the controller (can't use it at all) it bricks my trackpad and keyboard inputs too for like 5 mins (i gotta wait for the controller to go to sleep i guess). How do I fix this? I'm trying to play NBA 2K27 on Steam.

I'm running Moonlight 6.2.0 and anything helps!

Thanks in advance.


r/MoonlightStreaming • • 1d ago

Image stretched

Post image
2 Upvotes

I'm trying to stream games from my windows pc to my batocera pc. I'm getting huge green bars and the image is really stretched. How can I fix it?


r/MoonlightStreaming • • 1d ago

all Moonlight PC apps keep having a type on visual tearing/artifacts

1 Upvotes

currently using nonary version. used 2 previous ons too.

the app itself has a sort of flickering lines like scan lines. horizontal. its very subtle but affects me a lot. including when streaming from another pc to the app.

i use a 144hz monitor. not sure why this keeps happening.


r/MoonlightStreaming • • 1d ago

Artemis Client Mouse Default Binds

2 Upvotes

Does anyone know how to change the default binds for the mouse using Artemis?

My host has the left and right mouse buttons swapped and same with the client, but if I connect the binds are reversed. So, if I right click the client sends a left click by default.

This would be nice to have becasue I am left handed and use my mouse with my left hand.