feat(streaming): enforce typed completion queues
Replace the flat deferred list, priority scan, unload bypass, and count-only execution cap with exact destination/control/unload/Near/Far FIFOs behind one typed frame meter. Price worker results before adoption, retain exact retry identity, reject stale generations without payload retention, and publish queue pressure through lifecycle diagnostics. Tests: dotnet build AcDream.slnx -c Release --no-restore; dotnet test AcDream.slnx -c Release --no-restore (8138 passed, 5 skipped)
This commit is contained in:
parent
ac45cb1bd7
commit
b8f6317fe1
15 changed files with 1261 additions and 336 deletions
|
|
@ -1004,7 +1004,15 @@ public sealed class LandblockPresentationPipelineTests
|
|||
state,
|
||||
nearRadius: 0,
|
||||
farRadius: 2,
|
||||
removeTerrain: id => calls.Add($"unload:{id:X8}"));
|
||||
removeTerrain: id => calls.Add($"unload:{id:X8}"),
|
||||
workBudgetOptions: new StreamingWorkBudgetOptions(
|
||||
MaxUpdateMilliseconds: 100,
|
||||
MaxCompletionAdmissions: 3,
|
||||
MaxAdoptedCpuBytes: 1_000_000,
|
||||
MaxEntityOperations: 1_000,
|
||||
MaxGpuUploadBytes: 1_000_000,
|
||||
MaxGlRetireOperations: 1_000,
|
||||
DestinationReserveFraction: 0.75f));
|
||||
controller.PriorityLandblockId = priorityId;
|
||||
|
||||
Assert.Throws<InvalidOperationException>(() => controller.Tick(0x70, 0x70));
|
||||
|
|
@ -1021,8 +1029,8 @@ public sealed class LandblockPresentationPipelineTests
|
|||
Assert.Equal(
|
||||
[
|
||||
$"publish:{priorityId:X8}",
|
||||
$"publish:{laterId:X8}",
|
||||
$"unload:{unloadId:X8}",
|
||||
$"publish:{laterId:X8}",
|
||||
],
|
||||
calls);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue