-
Notifications
You must be signed in to change notification settings - Fork 181
Stuttering Clinic
Here're some common causes and solutions for stutters.
- Usually caused by frame rate mismatch, like requested 60fps but the client is only 59.94hz.
- Checkout Wiki for instructions on how to override the requested frame rate in Apollo.
- When the frame rate actually matches, you might need to enable VSync or limit frame rate of the game to the same as the requested refresh rate on your host. Client side VSync not that important then, the decoding latency won't go up for VSync if host side and client side matched exactly.
- If you’re able to use a frame limiter(like RTSS or Special-K), it’s always better than VSync. Disable VSync when you can limit your framerate.
- Check your monitor/display cable. Some monitors/fiber HDMI cables/HDMI switches probe connections actively, they'll cause the GPU to reinitialize context every time they do so, and stream will be renintialized as well causing a big hiccup.
- To fix the problem, leave the problematic display open during stream seems always work but it's not ideal.
- You can also try truning off the problematic display physically, or pull their cable off from the GPU side.
- Some monitors can get the behavior turned off: https://www.reddit.com/r/MoonlightStreaming/comments/1hw5ukh/comment/mjcnlsi
One of my monitors has a setting to "Auto Detect Input" and when I turned this off the stuttering is now gone! Even when the monitor is disconnected via software (Windows Display Settings)
- Commonly seen on SteamDeck, turn off power saving on the WiFi card seems to be fixing the issue.
- If still not working, toggle your WiFi connection may fix it temporarily.
- Power saving issue on WiFi cards as well. Typically seen on MTK cards, their default behavior saves power aggressively.
- Go to Device Manager, find your WiFi adapter, right click, select
Properties, findPower Savingrelated options and turn them off.
- Some vendor installed "game optimizing" softwares can cause problems, like
This is discovered recently when I left Apple Music UWP version opened and started a virtual display stream. It stutters severely. But once I close Apple Music it's back to normal immediately. And then I start Apple Music again during the stream, it's fine. After I quit the stream with Apple Music running, Apple Music itself starts stuttering and eating up a whole bunch of CPU. Apple Music might uses some weird methods to draw their UI animations that causes the problem.
So you can check if other running softwares can cause similar problems.
- AMD CPUs paired with Nvidia GPUs sometimes don't work so well. No exact cause found, nor proper solutions to this problem. Workaround is enable "Double refresh rate" mode in
Audio/Videotab, and limit your game to the requested refresh rate using RTSS or NVCP. - [TBD]
I have a theory why using real display can work stutter-free while virtual display stutters sometimes: real display drivers can get hardware interrupts from the monitor itself, which is the highest priority than anything software, so it can render things at the real highest priority. But virtual displays can't, since they don't interface with any real monitors, there's no hardware interrupts to trigger the update, and software clocks can get blocked or delayed by more important kernel tasks. This might also explain why AMD CPUs suffer more from stuttering on virtual displays, as they may handle software interrupts differently than Intel ones.
So leaving the system clean without unnecessary background processes while streaming from virtual display can be important.
If anyone has more understanding about how physical display drivers work, please leave your thoughts in the discussions!