https://gitlab.synchro.net/main/sbbs/-/commit/aca73d11b58ef35374d9da33
Modified Files:
src/doors/syncdoom/README.md syncdoom.c xtrn/syncdoom/syncdoom.example.ini
Log Message:
syncdoom: AIMD auto-depth controller, stable depth, lag relabel, cap 8
Follow-up to dfd77154e. Live VPN testing showed the base-minus-penalty auto depth oscillating 4/5<->1 on a jittery link, and the depth-1 dips were a slideshow. Rework the controller and the supporting RTT measurement.
- auto depth is now a delay-based AIMD controller with a dead-band and a rate
limit (max_inflight is a pure getter; auto_depth_update runs per DSR report):
probe up one when the round-trip is clean (<1.25x baseline), ease down when it
queues, HOLD in between -> it SETTLES at the link's sustainable depth instead
of hunting. Heavy queuing eases down (no longer slams to 1). Validated: holds
high on a fat VPN, stable on LAN, no oscillation.
- RTT baseline integrity: a reclaimed frame's late DSR report could be
mis-matched to a freshly-sent one, reading absurdly low and collapsing the
ceiling to depth 1 (the "manual cycle -> dips to 1 -> slow crawl back" bug).
Two guards: skip exactly the reports owed by reclaimed frames (g_dsr_stale),
and ignore any sample far below the smoothed RTT.
- g_rt_high (renamed from the misleading "g_remote"): the frame round-trip is
network latency PLUS the client's decode/render time, so a LAN with non-instant
JXL decode legitimately has a ~50ms round-trip. Once it's non-trivial, floor
depth at 2 (depth 1 there only caps the frame rate) -- latched, so a corrupted
sample can never strand a remote player at depth 1.
- Relabel the displayed/logged "RTT" -> "lag": it isn't pure ping (includes
decode), so "lag" is honest. Overlay, Ctrl-T popup, exit telemetry.
- Raise the depth cap 5 -> 8 (DEPTH_MAX; DSR ring widened to 16). On a high-
latency link frame rate ~= depth/round-trip, so 5 left fps on the table (e.g.
~19fps at depth 5 / 230ms); depth 8 reaches the 35fps sim cap there. auto
climbs to ~6 on such a link on its own; 7-8 are manual. Docs updated.
Co-Authored-By: Claude Opus 4.8 <
noreply@anthropic.com>
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net