docs(perf): record corrected Slice A RDP baselines
This commit is contained in:
parent
24f898c54d
commit
05a22dee99
4 changed files with 256 additions and 11 deletions
72
docs/research/2026-07-24-slice-a-rdp-baselines.md
Normal file
72
docs/research/2026-07-24-slice-a-rdp-baselines.md
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
# 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-config.md`](2026-07-24-performance-reference-config.md).
|
||||
The full sanitized figures and portal windows are in
|
||||
[`2026-07-24-slice-a-rdp-baselines.json`](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.6–6.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 A’s 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.
|
||||
Loading…
Add table
Add a link
Reference in a new issue