acdream/docs/research/2026-07-24-slice-d-unified-residency-report.md

119 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Modern Runtime Slice D — Unified Residency Report
**Date:** 2026-07-24
**Exact source/binary:** `1853a57c12ee16f8d1d2c41cca60851a4bd89de6`
**Configuration:** Release, physical local AMD display, 2560 × 1440
**Result:** PASS
## Scope
Slice D did not replace the renderer's specialized physical caches or alter
visual quality. It placed their limits and exact occupancy behind one typed
policy/diagnostic ledger, added generation-safe logical identity and leases,
bounded the previously unbounded animation and retained-alpha-scratch owners,
and made decoded audio part of the same accounting model.
The final gate exercised the exact D4 binary through:
- capped Caul → Sawato → Rynthid → Aerlinthe → Sawato → Holtburg → Caul →
Sawato → Caul;
- the same nine-stop route uncapped;
- pinned dense Arwic uncapped;
- fixed-camera screenshots at every canonical checkpoint;
- graceful character logoff and transport disconnect.
Raw JSON, CSV, PNG, trace, and frame-history artifacts remain in the ignored
local `logs/` tree:
- `connected-r6-soak-20260724-164203.*`
- `connected-r6-soak-20260724-165143.*`
- `connected-dense-town-20260724-170034.*`
## Connected results
| Route | Result | Elapsed | Failures | Warnings | Graceful |
|---|---:|---:|---:|---:|---:|
| Capped nine-stop | PASS | 514.308 s | 0 | 9 | yes |
| Uncapped nine-stop | PASS | 508.793 s | 0 | 11 | yes |
| Dense Arwic uncapped | PASS | 67.570 s | 0 | 1 | yes |
Warnings were expected authoritative population changes, known VFX
diagnostics, and empty world-edge landblocks. No warning represented a
residency, reveal-readiness, rendering, or shutdown failure.
### Frame cost
The values below are turn-window p95 CPU/GPU milliseconds. Lower means more
frame time remains for other work.
| Destination | Capped CPU / GPU | Uncapped CPU / GPU |
|---|---:|---:|
| Caul first | 8.0 / 3.6 | 7.5 / 3.2 |
| Sawato first | 4.6 / 1.7 | 2.1 / 1.3 |
| Rynthid | 4.6 / 1.8 | 2.4 / 1.5 |
| Aerlinthe | 4.6 / 2.2 | 2.1 / 1.4 |
| Sawato revisit | 4.6 / 1.8 | 1.6 / 0.9 |
| Holtburg | 4.7 / 2.1 | 3.7 / 2.1 |
| Caul return | 5.4 / 3.1 | 6.0 / 3.2 |
| Sawato plateau | 4.6 / 1.3 | 1.7 / 1.0 |
| Caul plateau | 8.4 / 3.4 | 7.0 / 3.3 |
Pinned dense Arwic, with 15,530 entities and 111 animations, measured
5.4 ms CPU p95 and 3.0 ms GPU p95 while turning. These measurements confirm
that the connected route is normally CPU-limited rather than GPU-limited.
They are evidence for the explicit Slice F/G approval decision, not permission
to begin that deferred ECS work.
## Residency plateau
The capped run's aggregate ledger is summarized below. CPU excludes the
prepared package's clean memory-mapped address space; GPU is cache-attributed
physical residence, not every framebuffer/shader/UI allocation tracked by the
independent process-wide GPU tracker.
| Checkpoint | Committed CPU | Physical GPU | Animations | Alpha scratch | Retiring |
|---|---:|---:|---:|---:|---:|
| Caul first | 36.8 MiB | 185.1 MiB | 26 | 8.10 MiB | 0 |
| Sawato first | 39.4 MiB | 247.1 MiB | 33 | 1.87 MiB | 0 |
| Rynthid | 23.3 MiB | 277.2 MiB | 39 | 2.62 MiB | 0 |
| Aerlinthe | 39.6 MiB | 277.3 MiB | 43 | 3.97 MiB | 0 |
| Sawato revisit | 30.3 MiB | 277.3 MiB | 43 | 3.97 MiB | 0 |
| Holtburg | 39.4 MiB | 347.0 MiB | 50 | 4.70 MiB | 0 |
| Caul return | 50.3 MiB | 355.0 MiB | 51 | 8.54 MiB | 0 |
| Sawato plateau | 36.1 MiB | 363.0 MiB | 55 | 2.28 MiB | 0 |
| Caul plateau | 38.5 MiB | 335.1 MiB | 55 | 8.53 MiB | 0 |
The third Caul visit used less cache-attributed CPU and GPU residence than the
second. Parsed-animation residence stopped at 55 entries, retained alpha
scratch remained below its 16 MiB aggregate budget, staged and retiring bytes
were zero at every canonical checkpoint, and all reported owners stayed within
their configured limits.
Process working set and private bytes are intentionally not substituted for
these ownership facts. The 27.53 GiB prepared package is memory mapped; Windows
counts touched clean file-backed pages in working set even though they are
discardable and are not committed cache ownership. The uncapped run ended at
1,776.5 MiB working set and 1,543.8 MiB private bytes after warming all nine
destinations. Slice E still owns the remaining portal publication/retirement
allocation and frame-transaction work.
## Automated gates
- Typed transition, cancellation, failure, owner-reuse, and stale-generation
conformance tests pass.
- Every bounded domain has deterministic forced-pressure coverage.
- Physical cache tests prove eviction and fence-delayed release.
- All-domain teardown converges to zero reported charge.
- Release build passes.
- Complete Release suite passes: 8,111 tests, 5 intentional skips.
- Connected fixed-camera screenshots passed the existing harness comparisons;
Slice D introduced no visible-frame change requiring a new subjective gate.
## Conclusion
Slice D's policy and acceptance gates are complete. Runtime cache memory is now
finite, attributable, generation-safe, and pressure-tested without reducing
view distance, particle distance, texture quality, or retail presentation.
Slice E is the next approved step: spread portal publication and retirement
over explicit per-frame cost budgets while keeping retired objects immediately
inactive and destination reveal correctness exact.