87 lines
4 KiB
Markdown
87 lines
4 KiB
Markdown
# Slice G2 Packed Dispatcher Gate
|
|
|
|
**Date:** 2026-07-25
|
|
|
|
**Candidate:** `f9829d5f9ea831b67be7cf5c3c339d11c9b5d52d`
|
|
|
|
**Result:** accepted; G2 complete
|
|
|
|
## Purpose
|
|
|
|
G2 proves that the retained render scene can produce the exact ordered object
|
|
and mesh-part stream consumed by the accepted dispatcher, then classifies that
|
|
stream through the same mesh, material, clip, light, translucency, alpha, and
|
|
selection owners without drawing a second time.
|
|
|
|
The production draw source remains unchanged. This is still compare-only
|
|
evidence and does not create a visual-cutover rollback unit.
|
|
|
|
## Exact physical evidence
|
|
|
|
| Route | Report | Candidate order | Packed input | Classified output | Selection | Exit |
|
|
|---|---|---:|---:|---:|---:|---|
|
|
| Capped nine-stop | `logs/connected-r6-soak-20260725-021745.report.json` | 16,879 / 16,879 | 16,879 / 16,879 | 16,879 / 16,879 | 16,879 / 16,879 | graceful |
|
|
| Uncapped nine-stop | `logs/connected-r6-soak-20260725-022749.report.json` | 17,282 / 17,282 | 17,282 / 17,282 | 17,282 / 17,282 | 17,282 / 17,282 | graceful |
|
|
| Uncapped dense Arwic | `logs/connected-dense-town-20260725-023714.report.json` | 770 / 770 | 770 / 770 | 770 / 770 | 770 / 770 | graceful |
|
|
|
|
Every canonical checkpoint reported:
|
|
|
|
- source commit, embedded binary commit, and candidate commit equal to
|
|
`f9829d5f9ea831b67be7cf5c3c339d11c9b5d52d`;
|
|
- zero candidate, packed-input, classified-output, selection, and shadow-scene
|
|
mismatches;
|
|
- zero pending render-journal entries and zero rejected delta applications;
|
|
- equal current/product frame sequence and equal expected/actual digests;
|
|
- `Passed=true`, `ExitCode=0`, `GracefulExit=true`, and exact binary/source
|
|
identity.
|
|
|
|
Dense Arwic exercised 15,530 resident objects and 111 active animated statics.
|
|
The nine-stop routes covered Caul, Sawato, Rynthid, Aerlinthe, Holtburg,
|
|
same-location revisits, landblock retirement/reuse, movement, jump, combat,
|
|
portal transitions, generation replacement, and graceful teardown.
|
|
|
|
## Corrections found by the stronger gate
|
|
|
|
### Ordered traversal is behavior
|
|
|
|
The original G1 comparator canonicalized each route by identity. It proved
|
|
membership and multiplicity, but not the accepted traversal order. G2's stable
|
|
alpha comparison exposed that equal-distance transparent parts preserve source
|
|
order, matching retail `CShadowPart::insertion_sort` at `0x006B5130`.
|
|
|
|
`GpuWorldState` now owns an explicit resident traversal slot plus the mutable
|
|
entity bucket index. Static publications and live projections consume that
|
|
one derived order. Swap-removal, rebucket, pending-to-loaded, same-landblock
|
|
replacement, and retired-slot reuse are permanent tests. The candidate and
|
|
packed-input comparators no longer sort away order differences.
|
|
|
|
### Empty diagnostic submissions contain no stale groups
|
|
|
|
The first exact capped run on `e0f36caa` had perfect candidate, packed-input,
|
|
and selection parity but seven transient classified-output mismatches. The
|
|
production no-VAO early return skipped group partitioning, so its diagnostic
|
|
fingerprint hashed stale reusable group lists even though it reported zero
|
|
accepted instances and groups.
|
|
|
|
`f9829d5f` normalizes a zero-instance diagnostic submission to empty accepted
|
|
group sets. This changes neither GL work nor pixels; it makes the referee
|
|
describe the actual accepted output. A permanent test seeds stale opaque and
|
|
transparent scratch and proves the zero-instance fingerprint remains the
|
|
canonical empty submission.
|
|
|
|
## Deterministic gate
|
|
|
|
- Exact-order mismatch fixture rejects equal membership in a different route
|
|
order.
|
|
- Static and live traversal fixtures cover landblock slot order, bucket index,
|
|
swap-removal, pending state, rehydrate, and slot reuse.
|
|
- Empty/no-VAO submission fixtures cover deferral and stale scratch.
|
|
- App Release: 3,759 passed / 3 skipped.
|
|
- Complete Release solution: 8,243 passed / 5 skipped.
|
|
|
|
## Rollback
|
|
|
|
G2 is compare-only. Commits through `f9829d5f` are safe to retain if a later
|
|
production visual cutover is reverted. The pre-cutover runtime rollback anchor
|
|
remains `e7d9d6fa`. G4 must record its exact production cutover commit before
|
|
the user visual gate.
|