Skip to content

[SUPERSEDED by v6.1.0-vrr4] Moonlight v6.1.0-vrr3 (VRR pacing beta 3)

Pre-release
Pre-release

Choose a tag to compare

@Nonary Nonary released this 03 Jul 23:43

Warning

This release is superseded by v6.1.0-vrr4, which adds self-calibrating near-ceiling VRR pacing, new VRR FPS presets, and cadence measurement fixes. Binaries below are kept for rollback.

VRR pacing beta 3

Third beta of the true-VRR frame pacing work for the Windows D3D11VA renderer. Includes everything from v6.1.0-vrr2.

What's new (commit 7ac5983)

  • Tear-cascade fix (the big one): new forensic instrumentation showed most residual tearing was self-inflicted — a single torn flip drops the panel out of VRR flip-following, and subsequent presents then tear against the free-running raster for frames on end. The renderer now tracks raster lock and the pacer grants full-scanout re-anchor alignment budgets until lock is re-proven by a streak of instant in-blank hits. Measured on heavy shifting-framerate 4K content: ~4% mid-scan tears down to ~1.1%, with multi-minute stretches at 0.0–0.5%.
  • New "VRR pacing buffer" setting in Streaming Settings — the latency-vs-smoothness dial. Frames wait briefly in a buffer that absorbs network and game hiccups; because a VRR display refreshes the moment a frame is presented, this buffer replaces the fixed-vsync wait rather than stacking on it. Options: Lowest latency (2.5 ms), Balanced (4.5 ms, default), Smoothest (6 ms). MOONLIGHT_VRR_CUSHION_US overrides for experimentation.
  • Post-stall recovery hardening: catch-up presents are spaced at the panel's measured tear-free flip ceiling instead of nominal max-refresh spacing (which physically cannot flip clean), rush presents keep a minimum alignment budget instead of going out blind, and the pacer briefly vsync-latches whenever the content cadence is unmeasurable (stream start, loading screens, entering a game).
  • Adaptive render lead margin replaces the fixed 4 ms: sized to the worst render-time overshoot over the last ~12 seconds, so steady scenes shed standing latency while hitchy games keep full protection.
  • Tear forensics in the log: every mid-scan present is attributed (lateness/flip gap/beam position/budget) in VRR tear forensics lines next to the 10-second align stats — please include a Moonlight-*.log when reporting pacing issues.

A/B env switches

MOONLIGHT_VRR_CLASSIC_RECOVERY=1 (pre-vrr3 recovery behavior), MOONLIGHT_VRR_FIXED_MARGIN=1 (fixed 4 ms margin), MOONLIGHT_VRR_CUSHION_US=<us>, MOONLIGHT_VRR_NO_TRIM=1, MOONLIGHT_VRR_NO_LATCH=1.

Requirements and notes (unchanged from vrr2)

Windows D3D11VA renderer, V-Sync ON in Moonlight settings, borderless windowed mode, VRR display with the stream FPS within the display's refresh range. If VRR "stops working," first check that your display hasn't dropped to 60 Hz. Known rough corner: sustained overload (client render time at or above the frame interval in very heavy scenes) still tears/drops briefly by design — prefer a lower stream FPS cap for very heavy content.