docs(perf): close Slice B with full-bake evidence

This commit is contained in:
Erik 2026-07-24 14:10:50 +02:00
parent 90bf6bbf45
commit 49f3a48ee6
5 changed files with 196 additions and 20 deletions

View file

@ -0,0 +1,76 @@
# Slice B full-bake report
**Date:** 2026-07-24
**Measured binary:** `90bf6bbf455654dd1cfe1749b19bfd36b769939c`
**Result:** pass, zero extraction failures
Slice B replaces the failed 865 GB per-cell bake with a deterministic,
content-identity package. The client does not consume this package yet; this is
the offline prepared-content foundation for Slice C.
## Full installed-DAT result
| Measure | Result |
|---|---:|
| GfxObj keys | 15,318 |
| Setup keys | 5,935 |
| EnvCell keys | 729,888 |
| Unique EnvCell geometries | 17,117 |
| EnvCell aliases | 712,771 |
| EnvCell deduplication | 42.6× |
| Physical blobs | 38,370 |
| Total TOC keys | 751,141 |
| Failures | 0 |
| Extract + write | 81.2 seconds |
| Validate + atomic publish total | 81.4 seconds |
| Artifact size | 29,561,864,760 bytes (28,192.4 MiB) |
| Peak working set | 5,073.7 MiB |
| Peak private bytes | 4,507.3 MiB |
The memory figures belong to the short-lived offline bake process while it
constructs and serializes 28.2 GiB of immutable payloads. They are not expected
client residency: the later runtime source memory-maps the package and
deserializes only demanded assets. Sixteen-result extraction batches and
immediate rejection of already-written side-staged meshes keep live bake graphs
bounded; 13,284 redundant particle-preload results were discarded without
retention.
The header carries format version 1, bake-tool version 2, and source DAT
iterations portal 2072, cell 982, high-res 497, language 994. Validation opened
the completed temporary package, checked those values, strict TOC ordering,
all 751,141 physical ranges, and then published with a same-volume atomic
overwrite move. No temporary artifact remained.
## Identity correction discovered by the gate
The first guarded full catalog stopped on a real collision in WorldBuilders
31× polynomial:
- Cell `0x00030175`: environment `0x277`, structure 0, surfaces
`0x013B, 0x0034`.
- Cell `0x01BC0105`: environment `0x276`, structure 0, surfaces
`0x04FC, 0x0034`.
- Both legacy identities: `0x00000002020E8C13`.
Those cells have different vertices and polygons. Silently aliasing them would
render the wrong room. Runtime and bake now share a namespaced FNV-1a identity
over the complete typed tuple, while the catalog still compares full tuples and
fails loudly on any future collision. The legacy calculation remains as a
conformance test proving this exact installed-DAT case.
## Alias and determinism gates
A sampled physical receipt at offset `16170873792` is shared by 25 EnvCell keys
across multiple landblocks. Eight of those keys were baked independently with
one and eight workers. Each output contained eight keys backed by one physical
blob, and both files were byte-identical:
`C8187761ED30CE9412C9081F52067159AECA5B02EB316E73DA29DC88D4339642`
The generated full pak remains an untracked machine artifact and is deleted
after final verification. The machine-readable, path-free evidence is
[`2026-07-24-slice-b-full-bake-report.json`](2026-07-24-slice-b-full-bake-report.json).
Release build passed with 17 pre-existing test-source warnings. The complete
Release suite passed 8,059 tests with five skips and zero failures. The generated
full and filtered pak artifacts were then deleted as required.