[SUPERSEDED by v6.1.0-vrr5] v6.1.0-vrr4 - Self-calibrating near-ceiling VRR (beta)
Pre-releaseWarning
This release has been superseded by v6.1.0-vrr5, which adds the Smoothest VRR (OS-scheduled presentation) option. These binaries are kept for rollback purposes only.
Beta build of the Windows VRR frame-pacing work. Supersedes v6.1.0-vrr3.
What's new in vrr4
True VRR in the near-ceiling band
Content between ~103 FPS and just under your display's max refresh used to be quantized to a fixed raster (vsync latch) or fall apart in free-run. It now runs true VRR pacing behind a ~1-frame re-timing buffer: presents ride the measured content cadence while arrival/render jitter lands on an already-queued frame instead of the flip instant. The buffer rebuilds in a single step after game hitches, sheds standing overfill cleanly (one deliberate skip instead of stutter bursts), and pays for raster re-lock out of the buffer instead of with drop cascades.
Self-calibrating, not hardware-tuned
Whether a given display/driver stack can flip-follow near max refresh is now measured, not assumed: the pacer probes its own mid-scan tear rate (a working band measures under ~3%; a non-following raster 40%+) and hands content to the tear-free vsync latch when this display proves it can't pace it — then re-probes periodically. Panels that can follow keep true VRR; stacks that can't find their own edge automatically.
New FPS presets
The FPS selector now offers two computed entries per display:
- VRR — the community-standard cap
refresh − refresh²/3600(120 Hz → 116 FPS, 144 Hz → 138): the highest rate adaptive sync can follow. - Low-latency VRR — ~5/6 of max refresh (120 Hz → 100 FPS): enough per-frame slack that pacing needs only a minimal standing buffer; the lowest-latency tear-free operating point.
Fixes
- 30 FPS (and other slow-cadence) content no longer gets falsely vsync-latched by a stall detector pinned to the stream's nominal rate.
- Dropped frames now feed the cadence measurement — fixes a self-sealing trap where 116 FPS content sat at ~104-108 FPS with 10-15% drops.
- Jitter-burst backlogs no longer pin tears for their whole duration (rationed raster re-anchors break the chains).
- Slow content (cutscenes) can no longer inherit the near-ceiling buffer and its latency.
- The performance overlay shows the live pacing sub-state, including the new "(near-ceiling buffer)".
A/B escape hatches
MOONLIGHT_VRR_NO_NEARBUFFER=1 restores vrr3's latch-everything behavior; MOONLIGHT_VRR_BUFFER_GUARD_US moves the band's fast edge.
🤖 Generated with Claude Code