feat(streaming): shadow-publish flat collision assets
Carry one immutable prepared collision closure with each accepted near-tier generation and install graph plus flat views through the same retained publication receipt. Apply the same strict package-only rule to live entities, add exact sampled graph-authoritative comparison artifacts and lifecycle counters, and prove cancellation, demotion, rehydrate, revisit, teardown, reconnect, and the nine-stop route with 14,064 zero-mismatch samples. Co-authored-by: OpenAI Codex <codex@openai.com>
This commit is contained in:
parent
f7ff9f4eea
commit
d9446030e6
32 changed files with 2777 additions and 92 deletions
|
|
@ -4,6 +4,7 @@ using AcDream.App.Rendering.Residency;
|
|||
using AcDream.App.Rendering.Scene;
|
||||
using AcDream.App.Streaming;
|
||||
using AcDream.App.UI.Testing;
|
||||
using AcDream.Core.Physics;
|
||||
|
||||
namespace AcDream.App.Diagnostics;
|
||||
|
||||
|
|
@ -81,6 +82,14 @@ internal sealed record WorldLifecycleResourceSnapshot(
|
|||
long DatObjectCacheHits,
|
||||
long DatObjectCacheMisses,
|
||||
long DatObjectCacheEvictions,
|
||||
int PhysicsGraphGfxObjs,
|
||||
int PhysicsGraphSetups,
|
||||
int PhysicsGraphCells,
|
||||
int PhysicsFlatGfxObjs,
|
||||
int PhysicsFlatSetups,
|
||||
int PhysicsFlatCells,
|
||||
int PhysicsFlatEnvCells,
|
||||
CollisionShadowStats CollisionShadow,
|
||||
StreamingWorkDiagnostics StreamingWork,
|
||||
ResidencySnapshot Residency,
|
||||
double Fps,
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ using AcDream.App.Rendering.Residency;
|
|||
using AcDream.App.Streaming;
|
||||
using AcDream.App.World;
|
||||
using AcDream.Content;
|
||||
using AcDream.Core.Physics;
|
||||
using AcDream.Core.Vfx;
|
||||
using DatReaderWriter.Lib.IO;
|
||||
|
||||
|
|
@ -39,6 +40,7 @@ internal sealed class WorldLifecycleResourceSnapshotSource
|
|||
private readonly FrameProfiler _frameProfiler;
|
||||
private readonly IDatReaderWriter _dats;
|
||||
private readonly ResidencyManager _residency;
|
||||
private readonly PhysicsDataCache _physics;
|
||||
private readonly ICurrentRenderSceneOracleSnapshotSource?
|
||||
_renderSceneOracle;
|
||||
private readonly IRenderSceneShadowSnapshotSource?
|
||||
|
|
@ -63,6 +65,7 @@ internal sealed class WorldLifecycleResourceSnapshotSource
|
|||
FrameProfiler frameProfiler,
|
||||
IDatReaderWriter dats,
|
||||
ResidencyManager residency,
|
||||
PhysicsDataCache physics,
|
||||
ICurrentRenderSceneOracleSnapshotSource? renderSceneOracle = null,
|
||||
IRenderSceneShadowSnapshotSource? renderSceneShadow = null,
|
||||
IRenderFrameProductSnapshotSource? renderFrameProduct = null)
|
||||
|
|
@ -92,6 +95,7 @@ internal sealed class WorldLifecycleResourceSnapshotSource
|
|||
_dats = dats ?? throw new ArgumentNullException(nameof(dats));
|
||||
_residency = residency
|
||||
?? throw new ArgumentNullException(nameof(residency));
|
||||
_physics = physics ?? throw new ArgumentNullException(nameof(physics));
|
||||
_renderSceneOracle = renderSceneOracle;
|
||||
_renderSceneShadow = renderSceneShadow;
|
||||
_renderFrameProduct = renderFrameProduct;
|
||||
|
|
@ -184,6 +188,14 @@ internal sealed class WorldLifecycleResourceSnapshotSource
|
|||
DatObjectCacheHits: datObjectCacheStats.Hits,
|
||||
DatObjectCacheMisses: datObjectCacheStats.Misses,
|
||||
DatObjectCacheEvictions: datObjectCacheStats.Evictions,
|
||||
PhysicsGraphGfxObjs: _physics.GfxObjCount,
|
||||
PhysicsGraphSetups: _physics.SetupCount,
|
||||
PhysicsGraphCells: _physics.CellStructCount,
|
||||
PhysicsFlatGfxObjs: _physics.FlatGfxObjCount,
|
||||
PhysicsFlatSetups: _physics.FlatSetupCount,
|
||||
PhysicsFlatCells: _physics.FlatCellStructCount,
|
||||
PhysicsFlatEnvCells: _physics.FlatEnvCellCount,
|
||||
CollisionShadow: _physics.CollisionShadowStats,
|
||||
StreamingWork: _streaming.WorkDiagnostics,
|
||||
Residency: residency,
|
||||
Fps: render.Fps,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue