Skip to content

Sunshine for Windows Experimental r7

Pre-release
Pre-release

Choose a tag to compare

@MoreOrLessSoftware MoreOrLessSoftware released this 02 Oct 04:58
· 32 commits to master since this release

Note

The optimizations in this build are best experienced with these custom Moonlight builds:
Moonlight X for Android
moonlight-qt for Windows

This release builds on the first experimental release with these features and improvements:

Bitrate boost for low game frame rates (NVENC and PyroWave)

When a game renders fewer frames than the stream's FPS, Sunshine now raises the bitrate per frame so the stream stays close to the bitrate Moonlight asked for, without going over it. For example, a 60 FPS game on a 120 FPS stream previously used only half the requested bitrate.

  • New setting: Low FPS Bitrate Boost (low_fps_bitrate_boost). Default 4, range 1–8, 1 turns it off.
  • The game's frame rate is measured so that a single hitch doesn't trigger a boost and the boost drops quickly when the game speeds back up.
  • Boosted frames are kept small enough to send at Video Send Rate before the game's next frame, so set Video Send Rate to suit your network.
  • NVENC streams leave room in the H.264/HEVC level so the bitrate can rise mid-stream. The stream now signals a higher level, such as HEVC 6.2 High. If a strict client refuses the stream, set the boost to 1.
  • Tips:
    • Set Minimum FPS Target to -1 for the full boost, since repeated frames count as frames.
    • With NVENC, raising VBV/HRD Percentage Increase (for example to 100) lets the encoder fill the boosted budget.

Latency tracing

New setting: Latency Log (latency_log, off by default) traces every video frame through capture, encoding and sending.

  • sunshine-latency.log gets a per-stage p50/p99/max summary every 10 seconds, plus a line for each frame much slower than usual.
  • Each session also writes sunshine-frames-<date>-<time>.csv with every sent frame. Its RTP timestamp matches Moonlight's frame times, so you can line it up with client-side traces.
  • Turn it off when you're done debugging: each session writes a new CSV.

Other

  • Updated moonlight-common-c to the latest mlsoft-pyrowave. It now delivers PyroWave frames with lost packets as partial frames, and negotiates PyroWave with nonary (vibeshine) hosts.

Full Changelog: mlsoft-r6...mlsoft-r7