acdream/docs/research/2026-07-24-slice-a-rdp-baselines.md
Erik 2421d09f5d docs(perf): commit physical Slice A baselines
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.
2026-07-24 14:41:50 +02:00

3.5 KiB
Raw Blame History

Slice A corrected RDP baselines

Date: 2026-07-24
Authority: diagnostic only; these captures do not satisfy the physical-local Slice A exit gate.

The corrected tooling was exercised over capped and uncapped nine-stop routes, plus a pinned uncapped dense-Arwic sample. All runs reached the world, completed their route, and disconnected gracefully. The final dense run was made after binary provenance became part of every soak report: source and measured binary were both commit 24f898c54d7c6547555a4402543b6a3cd7ced7f6, the tracked source tree was clean, and the report recorded an exact match.

The machine/display contract is defined in 2026-07-24-performance-reference-configuration.md. The full sanitized figures and portal windows are in 2026-07-24-slice-a-rdp-baselines.json. Raw CSV, EventPipe, screenshot, and process logs are intentionally local, untracked diagnostic artifacts.

Headline measurements

Capture Frames CPU p50 / p95 / p99 GPU p50 / p95 / p99 Frame-thread allocation p50 / max
Capped nine-stop 17,400 31.240 / 31.868 / 33.032 ms 3.626 / 5.826 / 6.807 ms 31.6 KiB / 202.8 MiB
Uncapped nine-stop 229,412 1.537 / 6.077 / 8.938 ms 0.935 / 3.288 / 3.470 ms 28.3 KiB / 206.3 MiB
Uncapped dense Arwic 16,350 3.487 / 7.351 / 12.690 ms 2.299 / 3.236 / 3.653 ms 50.8 KiB / 31.7 MiB
Dense Arwic, stable 5 s 925 4.802 / 7.422 / 8.281 ms 2.711 / — / 3.242 ms 36.8 KiB / 13.0 MiB

The capped CPU distribution is the expected 32 ms RDP/pacing envelope, while the GL timestamps show only 3.66.8 ms of ordinary GPU work. The corrected GPU timer therefore no longer measures frame pacing as GPU submission time.

Portal materialization remains the dominant transient cost. The uncapped Sawato materializations reached 206.3 MiB and 203.2 MiB of frame-thread allocation in a single frame. Process-wide allocation averaged 48.5 MB/s over the uncapped route, with 80 Gen-2 collections and a longest GC pause of 260 ms. This evidence keeps prepared-content work as the next architectural priority.

Observer effect

The dense-Arwic stationary sample was repeated without the process counter observer. Enabling it changed CPU p50 by -1.4%, p95 by +2.9%, p99 by +2.5%, GPU p50 by -0.6%, and frame-thread allocation p50 by -2.4%. Those differences are within natural route variance, so the observer is suitable for directional process-wide allocation and GC attribution.

Contention attribution

The capped route recorded 5,994 contentions with stacks:

Site Count Share
DatDatabaseWrapper.TryGet 4,516 75.3%
ObjectMeshManager.ProcessQueue 976 16.3%
DecodedTextureCache.GetOrCreate 254 4.2%
LandblockBuildFactory.Build 90 1.5%
LiveEntityHydrationController.OnCreate 74 1.2%
DatDatabaseWrapper.TryGetFileBytes 27 0.5%
Other 57 1.0%

This replaces speculation with a concrete ranking. It does not authorize lock-shape changes yet; the prepared-content slices should first remove demand from these paths and then the same capture must be repeated.

Gate state

Slice As instrumentation and RDP validation are complete. The remaining exit gate is a capped nine-stop, uncapped nine-stop, and pinned dense-Arwic capture on the physical local AMD display path. Slice B is baseline-independent and may proceed. Slice C remains blocked until the physical-local evidence is committed.