perf(rendering): retain packed classification

Retain appearance classification per projection while refreshing transforms, clip slots, lights, selection lighting, and group instance payloads each frame. Incomplete resources and active animation remain on the live classification path, and only an exact full packed comparison acknowledges scene dirtiness.
This commit is contained in:
Erik 2026-07-25 02:46:40 +02:00
parent f10dec58ba
commit 54d17eb446
7 changed files with 731 additions and 30 deletions

View file

@ -73,6 +73,26 @@ public sealed class RenderSceneShadowRuntimeTests
Assert.Contains("sourceChannel=static", snapshot.FirstMismatch);
Assert.Contains("field=transform", snapshot.FirstMismatch);
Assert.Single(logs);
Assert.Equal(1, snapshot.SceneIndexCounts.Dirty);
}
[Fact]
public void PackedProductOwnership_LeavesDirtyAcknowledgementToProduct()
{
WorldEntity entity = Entity(23, serverGuid: 0, parentCell: null);
CurrentRenderSceneOracle oracle = Capture(entity, []);
using var shadow = new RenderSceneShadowRuntime(Generation(1));
Register(shadow, entity, RenderProjectionClass.OutdoorStatic);
shadow.DrainUpdateBoundary();
var controller = new RenderSceneShadowComparisonController(
shadow,
oracle,
acknowledgeDirty: false);
controller.CompareNow();
Assert.Equal(1uL, controller.Snapshot.SuccessfulComparisonCount);
Assert.Equal(1, controller.Snapshot.SceneIndexCounts.Dirty);
}
[Fact]