Skip to content

[SUPERSEDED by v6.1.0-vrr5] v6.1.0-vrr4 - Self-calibrating near-ceiling VRR (beta)

Pre-release
Pre-release

Choose a tag to compare

@Nonary Nonary released this 04 Jul 18:27

Warning

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.


⚠️ This is a beta of experimental VRR pacing changes for Windows D3D11VA. If pacing misbehaves, check first that your display is actually running at its full refresh rate (Settings > Display > Advanced), then fall back to v6.1.0-vrr3.

🤖 Generated with Claude Code