refactor(render): delete superseded alpha sidecars

Remove the dead classic-group CachedBatch/InstanceGroup sort-center sidecar and its cache, append, reset, and diagnostic-digest plumbing. Remove the discarded camera parameter chain from grouped alpha deferral and dispatcher submission diagnostics while preserving walk/particle CYpt keys, FIFO submission ordinals, and opaque camera distance.

Add production-facing reflection/source pins for the deleted shapes and camera chain, retained per-cell and opaque owners, the exact three AlphaFlushCounts reasons, and deleted alpha-order symbols. Update directly affected cache/digest/group lifecycle tests and record the complete section 22 result.

Gates: Release 0W/0E; focused App 132/132 plus Core 29/29; new pins 4/4; real allocation pins 2/2 at 0 B; shaders 32/32; hermetic 16755/16755; InstalledDat exactly 385 pass, 10 documented fail, 1 skip; diff-check clean.

Mutations: InstanceGroup and CachedBatch sidecars fail their Assert.Null pins; Defer and digest camera parameters fail method-shape pins; false count prose fails the exact-reason pin; RetailAlphaOrdering resurrection fails the deletion pin. Each was restored independently before the final matrix.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Erik 2026-09-04 15:02:23 +02:00
parent a0523e6057
commit 26e97ba412
7 changed files with 224 additions and 105 deletions

View file

@ -1990,3 +1990,93 @@ call reachability, diagnostic-digest consequences, cache/reset/storage
lifecycle, allocation, allowed scope, every mutation claim, and all gate
counts. A failed lens gets one bounded fix contract; a third fix round stops
and is written up. Dual PASS lands c3b and unlocks G3.
### 22.7 S4-c3b implementation result (implementer, 2026-09-04)
PASS for the bounded implementation return. The classic grouped dispatcher no
longer carries `CachedBatch.LocalSortCenter` or
`InstanceGroup.LocalSortCenters`; their constructor/cache-hit/append/reset/
release and diagnostic-hash plumbing is gone. The discarded alpha camera
parameter is also absent from `DeferTransparentGroups`,
`BuildTransparentSubmissionDigest`, `CreateDispatcherSubmission`,
`ObserveCurrentDispatcherSubmission`, and
`ObserveClassifiedDispatcherSubmission`, with no camera tombstone remaining.
The diagnostic transparent digest therefore hashes only rendered state plus the
live submission ordinal, as intended.
Production-facing reflection/source pins prove the deletion and retain the
separate live owners: `WalkClassifiedBatch.LocalSortCenter`/
`SortDistanceSq`, the transformed authored-center per-cell stable descending
sort, and `PartitionInstanceGroups(cameraWorldPosition)` feeding opaque
`InstanceGroup.SortDistance`. Existing cache-hit matrix composition,
transparent submission-order digest, group lifecycle, walk/particle merge,
queue/router, allocation, and shader/state tests remain green. The
`AlphaFlushCounts_*` source-truth pin keeps exactly the content-empty replay,
AP-238 `(cell,list)` coalescing, and AP-239/AP-240 list-membership reasons and
explicitly preserves the fact that the former broad “per instance versus per
subset” explanation was false. Static production truth rejects resurrection of
`RetailAlphaOrdering`, `FlushFartherThan`, alpha-submit `viewerDistance`, or a
discarded camera tombstone.
Automated return:
- The first `dotnet build AcDream.slnx -c Release --no-restore` invocation did
not reach compilation because the fresh worktree had no
`obj/project.assets.json` files (`NETSDK1004`, 57 projects). One
`dotnet restore AcDream.slnx` populated those assets; the Release rerun then
passed with 0 warnings / 0 errors. This was dependency preparation, not a
product retry.
- focused App
`InstanceGroupClearTests|WalkStaticStreamPopulatorTests|ParticleRendererRouteTests|WalkFrameDriverTests|RetailAlphaQueueTests|RetailParticleGeometryClassifierTests`
— PASS, 132/132; focused Core
`WbDrawDispatcherBucketingTests|EntityClassificationCacheTests` — PASS,
29/29 (161/161 aggregate);
- the four new deletion/truth pins — PASS, 4/4 after every mutation restore;
- real warmed
`ProductionCellObjectParticleMerge_WarmedPathAllocatesZeroBytes|ProductionImmediateMesh_WarmedDrawImmediateParticleSubmissionRhiDoesNotAllocate`
— PASS, 2/2, both observing 0 managed bytes;
- `VulkanShaderDescriptorContractTests|VulkanShaderManifestTests|RenderPackSpirvValidatorTests`
— PASS, 32/32; no shader, SPIR-V, manifest, RHI, or pipeline file changed;
- official no-retry 14-assembly hermetic gate — PASS, 16,755 passed / 0
skipped / 0 failed; evidence
`artifacts/s4-c3b-hermetic-20260904`;
- InstalledDat with explicit `C:\Turbine\Asheron's Call`, inclusive of the
retained KnownFailures — 385 passed / 10 expected failed / 1 skipped. The
failures were exactly TowerAscent, the two #383 layout sweeps,
`Oh_doorway_still_first_frame_diff` (#458), and the six
`AlphaFlushCounts_*`; the skip remained `Sweep_the_lookin_gate_decodes_against_the_street_fixture`.
No new failure appeared; evidence
`artifacts/s4-c3b-installed-inclusive-20260904`.
Mutation ledger (each mutation was applied alone and restored by patch before
the next; the restored pin set passed 4/4):
1. Restoring `InstanceGroup.LocalSortCenters` first failed
`ClassicGroupedShapes_DeleteDeadSortCenterSidecarsButRetainWalkCyptKey` at
its second `Assert.Null`: expected null; actual
`List<Vector3> LocalSortCenters`.
2. Restoring `CachedBatch.LocalSortCenter` first failed the same pin at its
first `Assert.Null`: expected null; actual `Vector3 LocalSortCenter`.
3. Restoring the `DeferTransparentGroups(Vector3, Matrix4x4)` parameter and
tombstone first failed
`AlphaSubmissionShapes_DeleteDeadCameraChainButRetainOpaqueCameraDistance`:
`Assert.Equal` expected `[Matrix4x4]`, actual `[Vector3, Matrix4x4]`.
4. Restoring `cameraWorldPosition` on
`BuildTransparentSubmissionDigest` first failed the same pin's next
`Assert.DoesNotContain`: the parameter collection contained
`Vector3 cameraWorldPosition` at position 1.
5. Replacing the exact three-reason prose with a false broad fourth reason
first failed
`AlphaFlushCountKnownFailure_StatesOnlyTheThreeExactReasons` at
`Assert.Contains`: the required `former broad "per instance versus per
subset" explanation was false.` substring was absent.
6. Restoring an executable `RetailAlphaOrdering` symbol first failed
`ClassicGroupedAlphaSourceTruth_DeletesDeadOrderingChainAndPreservesLiveOwners`
at `Assert.DoesNotContain`: substring `RetailAlphaOrdering` was found.
The implementation changes only the three allowed production files, the two
named App test files, the one directly affected Core rendering test file, and
this result. AD-119 and AP-238 through AP-243, queue/router/list membership,
capacities, barriers, particles, per-cell ordering, building/private/portal
distances, shaders/RHI, package/content, and graphical behavior are unchanged.
No graphical client was launched.