https://gitlab.synchro.net/main/sbbs/-/commit/1c8e12283a76e76768ba3e51
Modified Files:
src/doors/syncdoom/README.md m_menu.c syncdoom.c xtrn/syncdoom/controls.msg syncdoom.example.ini
Log Message:
syncdoom: adaptive frame pacing to lift remote frame rate (Ctrl-T / Ctrl-S)
Over a high-latency link the DSR per-frame pacing capped the frame rate at ~1/RTT (a slideshow). Make the number of frames "in flight" configurable and, by default, adaptive.
- [video] frames_in_flight = 1..5 | auto (now the default). A pipeline lets
several frames cross the link at once, lifting a far-away player's frame rate
toward Doom's 35fps sim; on a fast LAN it goes well past that (duplicate
re-renders between tics -- a frame-dedupe pass, next, will trim those).
- auto = delay-based + bandwidth-aware congestion control: base depth from the
BASELINE (windowed-min) RTT, back off when the current RTT inflates above it
(a queue we're causing), and cap at the bandwidth-delay product (recent_fps x
min_RTT) so a high-latency *low-bandwidth* link (a far VPN) can't over-pipeline
and bloat the input lag. Validated live across LAN and VPN, and in simulation
(stable / queuing / bandwidth-limited links).
- Ctrl-T cycles the depth (1..5 -> auto) live and saves it per-user; Ctrl-S
toggles a top-right stats overlay (tier / fps / RTT current+baseline / depth).
- Exit telemetry logs RTT (current + baseline min) and the effective depth.
- Built-in default is auto (door is new -- no installed base to surprise); the
example.ini ships frames_in_flight = auto. README + controls.msg + the F1
help document the keys.
Co-Authored-By: Claude Opus 4.8 <
noreply@anthropic.com>
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net