Technical notes ยท Luanti

Luanti: the memory variants, the interfered round and its clean repeat (2026-10-17/18)

Date2026-10-18
GamesLuanti
batches2026-10-18-luanti-memory, 2026-10-18-luanti-clean-reruns, 2026-10-18-batch16

Symptom. The first run (2026-10-17) gave 67 fps HUD median in flight but a p10 of 23 and stalls to 0 while chunks loaded, with 177 MB swapped out and 32 MB free. Twenty memory variants were built, one lever each (saved, nopp, mip, chunk3, srvunload, active2, gen3, io, cliunload, leaves, tradeoff, flatlight, nominimap, view40, view90, nomerge, merge100, meshdelay, meshchunk2, noraycull, malloc, trim16, trim64; the bundles lean and leaner).

Evidence. The round of batch 2026-10-18-luanti-memory looked good: cliunload 6.5 to 0.8 s of stalls, lean rendering less terrain. The interference retro-scan then found digs and clicks during base, lean and tradeoff: somebody had played in those runs, so the cells were invalid (STALLS.md, “Interference”). The clean re-runs (batch 2026-10-18-luanti-clean-reruns, kernel .433, the kicker) and the lean parts alone (batch 2026-10-18-batch16) replaced them:

Variant Result Verdict
base (x2) 45.5 fps, 1.5 and 2.1 s of stalls stays the default
cliunload worse: 3.8 and 5.2 s of stalls, 2 s hitches when unloaded blocks come back rejected
lean 56-57 fps, 0.4 and 0.9 s of stalls, but a black void on the webcam at 150 s in both runs (no sky, no terrain) renders nothing
chunk3 alone the black void at 150 s: lean’s culprit rejected
srvunload, active2 render, but stall more (6.3 and 6.7 s against about 2.5) rejected
nomerge 2.5 s of stalls no gain
view40 (one clean run of the first round) 59 fps, closer fog, 0.9 s of stalls the one variant worth offering, to repeat

Outcome. None of the memory variants beat the default on clean runs; view40 waits for its repeat and then a menu option (the game’s todo).