perf(streaming): quiesce retired generations and budget teardown

Publish the retail blocking-for-cells edge before deferred recenter work, freeze old-world presentation/simulation/audio, and advance full-window retirement from exact metered entity and owner cursors. This removes synchronous portal teardown without allowing retained owners to remain observable.
This commit is contained in:
Erik 2026-07-24 18:29:52 +02:00
parent b8f6317fe1
commit bb16f74fd4
38 changed files with 1691 additions and 170 deletions

View file

@ -384,7 +384,8 @@ internal sealed class FrameRootCompositionPhase
retailPViewCells,
worldScenePasses,
d.RenderRange,
worldSceneDiagnostics);
worldSceneDiagnostics,
live.WorldAvailability);
Fault(FrameRootCompositionPoint.WorldRendererCreated);
bindings = new FrameRootRuntimeBindings();
@ -469,7 +470,8 @@ internal sealed class FrameRootCompositionPhase
live.WorldState,
session.LiveSession,
session.LocalPlayerFrame,
session.LiveSpatialReconciler);
session.LiveSpatialReconciler,
live.WorldAvailability);
var cameraFrame = new CameraFrameController(
host.CameraController,
d.InputCapture,
@ -496,7 +498,8 @@ internal sealed class FrameRootCompositionPhase
new StopwatchClientMonotonicTimeSource()),
session.LocalTeleport,
new PlayerModeAutoEntryFramePhase(session.PlayerModeAutoEntry),
cameraFrame);
cameraFrame,
live.WorldAvailability);
Fault(FrameRootCompositionPoint.UpdateRootCreated);
var bindingsLease = scope.Own(