github derflacco/moonlight-android Exp_7_Testing_2
MTK_Ultra_Low_Latency_Experimental_7_Testing2

This is a Testing Release

If you want a stabler version use this:
https://github.com/derflacco/moonlight-android/releases/tag/Experimental_6.2

Based on Exp_6.2.

Changelog

Range: 97c8ec4 → 578ff1b
GitHub

Highlights

  • Big polish pass for FPS=Hz / near-Hz streams: new “FPS-match” PhaseLock mode + conservative drop behavior to kill microstutter when host FPS locks to panel Hz.

  • Max Smoothness and Cap FPS pacing reworked to be more vsync-aligned and fluid, with smarter drop windows that scale with jitter/drops instead of overreacting.

  • Renderer hot-path refactor to reduce overhead: coldCfg containers for cold state, primitive ring buffers, faster PTS/stats maps, fewer locks/allocations, plus multiple stability cleanups.

  • Latency policy cleanup: LFR only forces 0-µs dequeue timeout when it’s truly effective, and Max Smoothness now runs without LFR to avoid needless CPU burn / oscillations.

  • WarpFactor compatibility fix: near-match FPS capping won’t break warp/drive modes anymore.

  • Experimental FSR gamma adjustment (test) to counter perceived darkening when FSR is enabled.

Added / New behavior

  • PhaseLock “FPS-match” mode (Balanced + Max Smoothness)

Detects exact/near FPS=Hz (±2 Hz) and switches to a more conservative, vsync-friendly PhaseLock setup.
Reduces correction overshoot and jitter-driven drop ping-pong on perfect locks.

Changed

  • Pacing (Max Smoothness / Cap FPS / Balanced)

  • Max Smoothness + Cap FPS now use a vsync-aligned drop heuristic

  • Cap FPS sits in the middle ground: slightly more drop-sensitive than Max Smoothness, but less aggressive than latency profiles.

  • Balanced gets a conservative mode when FPS matches display:
    recentDrops is reset and factors are widened to avoid micro-oscillation.

  • Cap FPS “hard cap to active Hz” and “near-match cap to Hz+2” rules unified across profiles to reduce stutter on panels that report odd refresh values.

Renderer internals

  • Moved cold codec config/state/geometry into coldCfg containers for better cache locality.
  • Replaced several maps/queues with primitive/SPSC rings and tightened PLL feedback cache.
  • Fixed leftovers from the refactor and added extra resource-management guards.

Latency policy

  • Only forces 0 µs dequeue timeout when LFR is actually effective.
  • Max Smoothness no longer enables LFR by policy (focus stays on stable vsync-aligned smoothness).

UI

  • Force Tight Vsync toggle hidden (the behavior is now covered by newer pacing logic).

Fixed (maybe, lol)

  • FPS=Hz microstutter

  • New FPS-match PhaseLock parameters + conservative pacing in matched cases.
    Extra guardrails in the render loop and present path to avoid drift / race-induced jitter.

  • Near-match FPS cap is skipped when WarpFactor is active, so warp/drive modes stay intact.

Test

  • FSR gamma tweak
    There’s a test change attempting to lift gamma a bit when FSR is ON.
    If you notice the image looking too bright/washed or inconsistent across games, let me know and I’ll revert or rework it.

As always,

⚠️ Heads up: this is experimental. I’ve only tested on my hardware, so things may break on yours. Use at your own risk.

Found a bug? Tell me and I’ll try to fix it.
Enjoy!

Full Changelog: Exp_7_Testing...Exp_7_Testing_2

Don't miss a new moonlight-android release

NewReleases is sending notifications on new releases.