perf(streaming): cursor publication across frame budgets

This commit is contained in:
Erik 2026-07-24 19:10:18 +02:00
parent bb16f74fd4
commit 98f1ac8934
32 changed files with 2215 additions and 823 deletions

View file

@ -731,8 +731,18 @@ readiness continue. Canonical live records remain retained until physical
teardown converges, so quiescence neither reconstructs server identity nor
invents Hidden/UnHide transitions. Full-window and shared-origin retirement
advance only from `StreamingController.Tick` through stable resident and
per-owner entity/stage cursors on the frame's one meter. Publication remains
transaction-atomic until Slice E4.
per-owner entity/stage cursors on the frame's one meter.
Accepted publication is likewise retained at its exact priority-queue head.
`LandblockPresentationPipeline` meters render, physics, static, building, and
EnvCell receipts one operation at a time; each owner captures stable ordered
inputs once and retries only its unfinished cursor. Building and EnvCell
replacements are constructed off-side and atomically replace their complete
owner snapshots. The final `GpuWorldState.MutationBatch` is intentionally one
observer-atomic boundary so bucket identity, render pins, activation, and the
outer visibility notice cannot be observed partially. Settings and native
callbacks may defer policy changes, but cannot bypass the frame meter to drain
pending publication.
### World-reveal readiness ownership