Capture the authoritative capped, uncapped, and dense-Arwic routes on the physical AMD display path. Preserve the portal allocation, exception-storm, and repeated-Caul memory failures as MP1c's before-state while unblocking the prepared-asset cutover.
89 lines
4.7 KiB
Markdown
89 lines
4.7 KiB
Markdown
# Slice A physical-local baselines
|
|
|
|
**Date:** 2026-07-24
|
|
|
|
**Authority:** performance-gate baseline
|
|
|
|
**Source and measured binary:** `49f3a48ee63b82d00731b0f91497930925279c86`
|
|
|
|
The corrected Slice A tooling was exercised on the authoritative physical AMD
|
|
display path defined by
|
|
[`2026-07-24-performance-reference-configuration.md`](2026-07-24-performance-reference-configuration.md):
|
|
RX 9070 XT driver `32.0.31021.5001`, 2560 x 1440 at 240 Hz, with the client
|
|
rendering 1280 x 720 Release gameplay without developer UI. The tracked source
|
|
tree was clean at every launch, source and binary commits matched exactly, all
|
|
route actions completed, and all three clients disconnected gracefully.
|
|
|
|
The full sanitized metrics and every portal window are in
|
|
[`2026-07-24-slice-a-physical-local-baselines.json`](2026-07-24-slice-a-physical-local-baselines.json).
|
|
Raw CSV, EventPipe, screenshots, logs, and process reports remain local
|
|
untracked diagnostic artifacts.
|
|
|
|
## Headline measurements
|
|
|
|
| Capture | Frames | CPU p50 / p95 / p99 | GPU p50 / p95 / p99 | Frame-thread allocation p50 / max |
|
|
|---|---:|---:|---:|---:|
|
|
| 240 Hz capped nine-stop | 107,081 | 4.287 / 6.972 / 9.404 ms | 1.702 / 3.261 / 3.847 ms | 28.1 KiB / 203.5 MiB |
|
|
| Uncapped nine-stop | 232,974 | 1.520 / 5.694 / 7.825 ms | 0.897 / 3.239 / 3.406 ms | 27.3 KiB / 202.9 MiB |
|
|
| Uncapped dense Arwic | 15,785 | 3.672 / 6.561 / 14.121 ms | 2.476 / 3.284 / 3.752 ms | 40.7 KiB / 28.5 MiB |
|
|
| Dense Arwic, stable 5 s | 1,044 | 4.239 / 6.139 / 6.760 ms | 2.712 / 3.235 / 3.263 ms | 37.5 KiB / 13.0 MiB |
|
|
|
|
The physical path confirms that ordinary steady rendering is fast. The stable
|
|
dense-Arwic window contained 15,530 world entities and 111 animated entities
|
|
while remaining below 6.8 ms CPU p99 and 3.3 ms GPU p99. The 32 ms RDP envelope
|
|
was therefore a remote-presentation artifact rather than local renderer cost.
|
|
|
|
Portal materialization remains the dominant transient. Sawato allocated up to
|
|
203.5 MiB in one capped frame and 202.9 MiB in one uncapped frame. The
|
|
uncapped route allocated 11.25 GB on the frame thread in 501 seconds, while the
|
|
process-wide runtime counter averaged 50.0 MB/s and recorded 58 Gen-2
|
|
collections. `ArgumentOutOfRangeException` was also emitted 4,659 times during
|
|
that route. This is the invalid typed-Setup probe storm already in Slice C's
|
|
scope, not an accepted steady-state mechanism.
|
|
|
|
## Repeated-portal memory result
|
|
|
|
Both nine-stop sessions completed behaviorally but deliberately failed the
|
|
existing memory plateau assertion:
|
|
|
|
- The capped final Caul checkpoint was 685.6 MiB higher in working set and
|
|
699.8 MiB higher in private memory than the first Caul checkpoint.
|
|
- The uncapped final Caul checkpoint was 295.1 MiB higher in working set.
|
|
- In the uncapped comparison, world entities returned from 21,031 to 21,025,
|
|
animated entities from 18 to 13, and owned composite textures from 163 to
|
|
120. Managed live bytes changed only 271.95 MB to 274.69 MB, while committed
|
|
managed memory rose from 438.01 MB to 867.14 MB.
|
|
- The capped comparison likewise ended with fewer mesh records, atlas arrays,
|
|
and composite textures than the first Caul checkpoint, but committed managed
|
|
memory rose from 449.30 MB to 1,235.05 MB.
|
|
|
|
The evidence does not point to retained world ownership. It points to very high
|
|
allocation churn, LOH fragmentation, and GC heap segment reservation after
|
|
portal decode. The baseline is intentionally recorded as a failure instead of
|
|
loosening the assertion; prepared-content Slice C must remove the decode/probe
|
|
traffic and then repeat this exact gate.
|
|
|
|
## Contention and ownership interpretation
|
|
|
|
The physical capped route recorded 7,292 runtime contentions. The committed
|
|
stack-attributed RDP capture remains the attribution oracle because the same
|
|
code and route ranked `DatDatabaseWrapper.TryGet` first (75.3%), followed by
|
|
`ObjectMeshManager.ProcessQueue` (16.3%) and
|
|
`DecodedTextureCache.GetOrCreate` (4.2%). Slice C removes demand from those
|
|
paths before any lock redesign is considered.
|
|
|
|
Canonical ownership counters and graceful teardown passed on every run. No
|
|
pending mesh uploads, landblock retirements, live-entity teardowns, or
|
|
composite warmups remained at the final checkpoints.
|
|
|
|
## Gate state
|
|
|
|
Slice A's physical-local exit criterion is complete: a committed 240 Hz capped
|
|
nine-stop baseline, uncapped nine-stop baseline, pinned uncapped dense-Arwic
|
|
baseline, and per-portal frame/allocation windows now exist on the reference
|
|
display path. This unblocks Slice C.
|
|
|
|
It does **not** mark the measured memory behavior healthy. The plateau failures,
|
|
~200 MiB portal frames, ~50 MB/s process allocation, exception storm, and
|
|
heap-reservation growth are the before-state that Slice C must materially
|
|
improve without changing pixels or gameplay.
|