What the supplied logs establish

runtime (1).log is v1.0.10 on Linux. Two required 6,800-byte allocations fail
with 134,080 bytes free, but the largest free block is only 3,088 bytes. The
pool reports 967/1600 descriptors and valid=1. These are guarded game stops,
returning to the launcher, rather than evidence of the operating system running
out of RAM. The second attempt fails the same way after restarting the game.

runtime-previous (1).log is v1.0.9 on Windows. A required 16,800-byte allocation
fails with 138,624 bytes free and a largest block of 15,184 bytes. It reports
1003/1600 descriptors and valid=1, then returns to the launcher safely.

runtime (2).log is v1.0.9 on Windows. It reports several HUD asset load failures,
including sprite 9, the shared number asset. That matches the screenshots:
labels, separators and some icons remain visible while the digits are missing.
This log ends cleanly and does not show a required-allocation fatal stop.
Without heap figures at those exact HUD failures, their precise cause cannot
be proven from this log alone. This patch adds those figures on the already
bounded first-failure diagnostic path. Asset retries remain intact.

All three records include offline gameplay. These failures therefore cannot
be attributed solely to spectator lobbies or online rollback. Installed mod
catalogues do not prove which content was active in each race. The Linux log
reports no user texture packs. The problem should not be dismissed as bad mods.

There is also a separate water renderer warning in the Linux log: a scratch
request exceeds its 256 MiB budget and falls back to a bounded path. That does
not establish a fatal GPU allocation failure. This patch does not raise that
budget or change GPU synchronisation to mask the guest allocation failures.

Why this can happen

The original main pool still ended at the 4 MiB address ceiling for ordinary
sessions. Its usable resource space is smaller because code, globals, allocator
descriptors and other game data live below that ceiling. Some custom sessions
already had expansion RAM admitted, so the policy varied with session type.

The current all-player detail layer deliberately retains extra racer model
levels for every peer. The original spawn flags that skipped the first two
levels are cleared. This increases resident resource demand in both normal
and owned execution. The ordinary heap policy had not been raised to match.
The logs do not identify every live owner, so this is a confirmed mismatch and
a supported repair target, not proof that it is the only possible cause of
memory pressure in every track/mod combination.

Free space also becomes fragmented into holes between live resources. Adding
up those holes is misleading: a texture, model or HUD buffer needs one block
large enough for its own allocation. Neither descriptor table was full in the
reported failures. Increasing that table alone would not create a larger block.

What this repair deliberately preserves

The original allocator, two-tick deferred releases, cache ownership and guarded
required-allocation stops remain. It does not free resources early, swallow an
allocation error, fabricate GPU completion, evict live model pointers or compact
live memory. It admits known ordinary pools into existing expansion RAM at
initialisation and keeps an upper guard. This does not increase the existing
16 MiB rollback checkpoint format. The launcher design and accepted spectator,
race-release, offline-copy and mod-join fixes remain in the retained chain.

What still needs real playtesting

Synthetic regressions establish the allocator failure class and headroom change,
bounds, delayed ownership, checkpoint restore and repeated allocation/unload
behaviour. They do not establish how every real track's assets, graphics driver,
mod combination or long multiplayer session behaves. Run the reported failing
races and the repeated track/restart/spectator tests in PLAYTEST.txt before
promoting this repair into a public stable auto update. No honest test result
can guarantee that a native game will never crash on every machine.
