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:
parent
b8f6317fe1
commit
bb16f74fd4
38 changed files with 1691 additions and 170 deletions
|
|
@ -3,6 +3,7 @@ using System.Reflection;
|
|||
using AcDream.App.Rendering;
|
||||
using AcDream.App.Rendering.Selection;
|
||||
using AcDream.App.Rendering.Vfx;
|
||||
using AcDream.App.Streaming;
|
||||
using AcDream.Core.Rendering;
|
||||
using AcDream.Core.World;
|
||||
|
||||
|
|
@ -21,6 +22,23 @@ public sealed class WorldSceneRendererTests
|
|||
Assert.Equal(["selection:begin", "selection:complete"], rig.Calls);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void QuiescedGeneration_PublishesEmptySelectionFrameAndSkipsEveryWorldOwner()
|
||||
{
|
||||
var availability = new WorldGenerationAvailabilityState();
|
||||
availability.Begin(4);
|
||||
var rig = new Rig(
|
||||
portalVisible: false,
|
||||
waitingForLogin: false,
|
||||
clipRoot: null,
|
||||
availability: availability);
|
||||
|
||||
WorldRenderFrameOutcome result = rig.Renderer.Render(default);
|
||||
|
||||
Assert.Equal(default, result);
|
||||
Assert.Equal(["selection:begin", "selection:complete"], rig.Calls);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void LoginWait_DrawsFlatSkyThenCompletesFrameWithoutWorldGeometry()
|
||||
{
|
||||
|
|
@ -332,7 +350,8 @@ public sealed class WorldSceneRendererTests
|
|||
bool waitingForLogin,
|
||||
LoadedCell? clipRoot,
|
||||
bool? playerSeenOutside = null,
|
||||
EnvironOverride environOverride = EnvironOverride.None)
|
||||
EnvironOverride environOverride = EnvironOverride.None,
|
||||
IWorldGenerationAvailability? availability = null)
|
||||
{
|
||||
Calls = [];
|
||||
DayGroup = new DayGroupData { Name = "sentinel-day-group" };
|
||||
|
|
@ -385,7 +404,8 @@ public sealed class WorldSceneRendererTests
|
|||
new PViewCells(),
|
||||
Passes,
|
||||
new WorldRenderRangeState(4, 12),
|
||||
diagnostics);
|
||||
diagnostics,
|
||||
availability);
|
||||
}
|
||||
|
||||
public List<string> Calls { get; }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue