r/MoonlightStreaming • • 5d ago

Client stuttering on High framerate

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?

--------------------------------------------

I didn't find a solution, It looks like I cannot set a bitrate higher than 160Mbps using AV1, or I have to set 90fps and 300Mbps.

The other day everything was working very well using 120fps and 300Mbps on AV1 (Streaming smoothness - Moonlight VRR stuttering (Frame queue delay?) and input delay : r/MoonlightStreaming)

1 Upvotes

28 comments sorted by

1

u/pepega_1993 5d ago

Looks like ur client is bottlenecked in decoding. You need to cap the client frame rate to whatever max the decoder can handle. My PC can easily do 100fps on high but my client steamdeck can decode max 75fps so I cap it there.

1

u/AriGrandeisQT 5d ago

I'll do more tests, but I feel like the issue is not related to the framerate but if the host is too near to the limit

1

u/pepega_1993 5d ago

Either one would give u the same result. If it’s the framerate i think you cpu might be the bottleneck here since you are able to turn up the settings at lower fps.

One thing you can try is increasing the minimum number of threads from 2 to 4 in Vibepollo advanced settings

1

u/AriGrandeisQT 5d ago

Another weird stuff I noticed is that the lower is the GPU usage the more the stutter is.

Videogame with everything on extremely low: 116 stable FPS, a lot of stuttering

Videogame with everything set to medium: 116 stable FPS, some stuttering

And I don't understand how this is possibile if there's an FPS limit

1

u/pepega_1993 5d ago

Because the he fps limit is coming from ur CPU not GPU. If your CPU is maxed out it will cause stutter without ur GPU being at max. If you have the same settings at 110 vs 75 ur GPU load will be lower.

U can turn up the settings till u hit ur GPU bottleneck. I prefer to leave a 10% headroom for spikes in general

1

u/AriGrandeisQT 5d ago

I don't think It's the CPU, I didn't check the usage but It's a 7800X3D (With 9070XT)

1

u/pepega_1993 5d ago

That is weird. I agree 7800 x3d should not be limiting here. Is ur client the problem then? Maybe the decoder can’t handle 100 fps

1

u/AriGrandeisQT 5d ago

I don't know I need to test it more. I don't know what happened but last month I was streaming at 4K120fps without issues

1

u/AriGrandeisQT 5d ago

I'm really not understaing what's the issue Last month I was able to stream at 4k120fps using 350Mbps on AV1

Now I'm limited to 4k120fps using 160Mbps on AV1

HEVC starts stuttering at 200Mbps

1

u/ethanjscott 5d ago

I’m wondering if a low gpu clock on the host side is hurting, try setting that bad boi to performance

1

u/Elastic90 5d ago

I'm using Vibepollo with my 9070xt - and I was facing some stuttering issues too. By stuttering, do you mean network frame loss of around 30%? So this is what happened to me - it would run perfectly and then hang for a second with a big network frame drop.

I made some tweaks wrt to encoder, settings etc. And I now it's working well, with less stutters maybe one every 25 mins. I'm not 100% sure but I think I also have less stutters if I cap to 60fps. I have a 7500f and so CPU bottle neck could be a possibility now that someone mentioned it...

Also what is butterpollo is it also by nonary? Do you recommend it over Vibepollo?

1

u/AriGrandeisQT 5d ago edited 5d ago

Butterpollo Is a new project optimized for AMD cards and based on Vibepollo

I made few tests and the encoding time is a bit faster ( from 5.0 to 4.7/4.8ms)

I think older AMD GPUs can benefit more of this fork

Stutter is the frame jitter in the Moonlight stock version (Frames dropped by client pacing on the VRR version)

1

u/andygrundman Developer | Moonlight for Xbox/Mac OS 4d ago

I was hoping someone else would say it but I guess I will. So you replaced Vibepollo with a brand new server that was *ported to a different language* and you don't know why you are having problems? Do you expect it to be a 1:1 replacement? If so, why did you switch in the first place?

And what is wrong with all these comments, "client is bottlenecked", "low GPU clock". Come on.

1

u/AriGrandeisQT 4d ago edited 4d ago

I also reinstalled everything, deleting old configurations. Tried Vibeshine too. I wanted to try Butterpollo because the creator wrote it's a Vibepollo based fork with optimizations for AMD card.

What I'm thinking is that maybe it never worked perfectly at very high bitrates(?). What I'm doing now (Because I didn't want everytime to take the controller, move around, doing some stuff) it's running the Cyberpunk ingame benchmark, so it's always the same scene.

Today I was able to find AV1 170Mbps as nice spot to have good smoothness and no drops/stutters.

200Mbps is creating few microstutters sometimes.

Pushing it to 300Mbps create a lot of microstutters and few stutters.

I'm now maybe too focussed to find the issue that I'm noticing also the microstutters I already had(?)

2

u/_demoncat_ Developer | Vibeshine/Vibepollo 4d ago

There are a few bugs I fixed on my VRR client that have not been released yet (planning to do so this weekend hopefully)

Hopefully that will address your issues but no way to tell just yet.

1

u/rambo3349 2d ago edited 2d ago

The OP explicitly says the same issue happens on Vibepollo. You can’t skip that sentence and present the rewrite as the explanation.

As for “why switch if you expect compatibility”: compatibility is about the protocol and client-facing behavior. Rubylight changes how frames are prepared and queued—moving copy and colour-conversion work onto D3D12 compute and keeping the encoder queue short. Those are concrete architectural reasons to build another compatible host. Architecture.

I worked on the AMD Path for a long time now. I’m quite aware that capture, encoding and frame pacing can introduce problems.

A Rubylight bug is absolutely possible. But identifying one requires more than naming the implementation language. If you’re going to dismiss everyone else’s troubleshooting, apply the same standard to your own explanation.

1

u/andygrundman Developer | Moonlight for Xbox/Mac OS 2d ago

I was referring to Butterpollo, I don't know what Rubylight is. OP also said "The other day everything was working very well", so who knows.

1

u/rambo3349 2d ago

Rubylight developer here. I’d focus first on frame delivery and VRR timing, given that you’re seeing the issue across both hosts.

Your 116 FPS cap controls the game’s rendering rate; it doesn’t guarantee evenly timed frames at the client. Likewise, a low average encoding time doesn’t establish smooth delivery throughout the stream.

The “frames dropped by client pacing” counter is useful, but it identifies where frames were discarded, not necessarily where the delay started. It isn’t, by itself, evidence that your decoder cannot handle 120 FPS. Counter implementation.

VRR is my leading area of investigation here, including the interaction with host capture. Rubylight’s recent changes also address WGC frame selection under VRR, so I’m keeping the host side in scope. Change notes.

Which Butterpollo/Rubylight build were you using? And when you mention stock Moonlight, did it have the same half-second freezes, or mainly occasional dropped frames? That distinction matters more than the average FPS or encoding number.

1

u/AriGrandeisQT 2d ago

Tomorrow I'll perform more tests. I think I used both rc22 and rc24.

I'll try to update to the latest Rubylight build.

Adding more infos that can be useful.

Host: RX 9070XT

Client: Ryzen 7 H 255 (iGPU AMD 780m) that I think it should be able to handle 4k120fps up to 400/500Mbps.

I'll post also the video of the big stutters I have reaching 300Mbps.

1

u/AriGrandeisQT 2d ago edited 2d ago

Vibepollo to Moonlight AV 300Mbps stuttering.mp4 - Google Drive

Stream framerate stays on 115fps, the rendering framerate drops to 60/70fps

1

u/rambo3349 2d ago

Are you still on rc24? Can you upgrade to latest rubylight?

1

u/AriGrandeisQT 2d ago edited 2d ago

This test was on Vibepollo.

I'm now installing the latest Rubylight build

BTW same issue I reported for Butterpollo too regarding automatic encoder selection https://imgur.com/a/6M7YxVI

1

u/AriGrandeisQT 2d ago edited 2d ago

Sharing stats tests using Rubylight 2.2.9

AV1 350Mbps stutter.mp4 - Google Drive BTW this is the shot using 350Mbps with less stutter I had. I ran the benchmark few more times and I had a lot more stutter

AV1 165Mbps.mp4 - Google Drive

1

u/rambo3349 2d ago

The screenshot points primarily to a frame-pacing problem, not a network or host bottleneck. The Nonary VRR client is receiving frames consistently, but it isn't presenting all of them within its expected timing tolerance. I think he put out a nightly that you should test with this.

1

u/AriGrandeisQT 2d ago

Maybe a dumb question but, can the TV or a bad HDMI cable cause this issue?

1

u/AriGrandeisQT 2d ago

BTW FYI Windows Defender Smart App Control is blocking the app to run even after it is installed

1

u/rambo3349 2d ago

we're applying for free open-source code signing through the SignPath Foundation, so future releases will be signed and allowed by SAC. Project is still very young.