feat(rendering): pack scene dispatcher inputs
Capture immutable presentation payloads in the render scene, flatten unique entity and mesh-part records into the borrowed frame arena, and compare every routed dispatcher input tuple without changing the production draw source.
This commit is contained in:
parent
720578592b
commit
d8d9897376
13 changed files with 593 additions and 24 deletions
|
|
@ -406,6 +406,41 @@ public sealed class CurrentRenderSceneOracleTests
|
|||
}
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SurfaceOverrideFingerprint_IsOrderIndependentAndContentExact()
|
||||
{
|
||||
var first = new Dictionary<uint, uint>
|
||||
{
|
||||
[0x0800_0002] = 0x0500_0012,
|
||||
[0x0800_0001] = 0x0500_0011,
|
||||
};
|
||||
var reordered = new Dictionary<uint, uint>
|
||||
{
|
||||
[0x0800_0001] = 0x0500_0011,
|
||||
[0x0800_0002] = 0x0500_0012,
|
||||
};
|
||||
var changed = new Dictionary<uint, uint>
|
||||
{
|
||||
[0x0800_0001] = 0x0500_0011,
|
||||
[0x0800_0002] = 0x0500_0013,
|
||||
};
|
||||
|
||||
RenderSceneHash128 expected =
|
||||
CurrentRenderSceneOracle.CreateSurfaceOverrideFingerprint(first);
|
||||
|
||||
Assert.Equal(
|
||||
expected,
|
||||
CurrentRenderSceneOracle.CreateSurfaceOverrideFingerprint(
|
||||
reordered));
|
||||
Assert.NotEqual(
|
||||
expected,
|
||||
CurrentRenderSceneOracle.CreateSurfaceOverrideFingerprint(
|
||||
changed));
|
||||
Assert.NotEqual(
|
||||
expected,
|
||||
CurrentRenderSceneOracle.CreateSurfaceOverrideFingerprint(null));
|
||||
}
|
||||
|
||||
private static CurrentRenderProjectionFingerprint CaptureSingle(
|
||||
WorldEntity entity,
|
||||
uint landblockId,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue