103 lines
3.8 KiB
Markdown
103 lines
3.8 KiB
Markdown
# Modern runtime Slice H closeout
|
|
|
|
## Result
|
|
|
|
Slice H's scoped work is complete:
|
|
|
|
- retained UI report layout, visible cooldown participation, changed-only
|
|
attachment reconciliation, and retained frame scratch;
|
|
- exact bounded global-light selection;
|
|
- one pooled cancellable receive owner, borrowed packet decode, and direct
|
|
recurring outbound framing.
|
|
|
|
No retail gameplay, packet-ordering, acknowledgement, heartbeat, visibility,
|
|
light-membership, or UI-presentation rule changed.
|
|
|
|
## Automated conformance
|
|
|
|
At production commit `41c1a593927fcf71ef83b4825c659a4970e9b858`:
|
|
|
|
- `dotnet build AcDream.slnx -c Release`: pass, with the 16 already tracked
|
|
test-project warnings;
|
|
- complete Release solution: 8,292 passed / 5 skipped;
|
|
- network-focused suite: 600 passed;
|
|
- receive decode differential: all optional fields, login, fragment,
|
|
malformed-packet, and ISAAC-state cases pass;
|
|
- recurring send differential: exact bytes, checksum, sequence, and ISAAC
|
|
consumption pass.
|
|
|
|
Warm microbenchmarks:
|
|
|
|
| Path | Before | After | Result |
|
|
|---|---:|---:|---:|
|
|
| 500,000 borrowed 48-byte packet decodes | 246.372 ms / 200,000,040 B | 28.431 ms / 40 B timer overhead | 8.666x throughput; production decode 0 B |
|
|
| 500,000 recurring 44-byte sends | 137.206 ms / 176,000,040 B | 12.551 ms / 0 B | 10.932x throughput; direct framing 0 B |
|
|
|
|
## Connected lifecycle gate
|
|
|
|
Command:
|
|
|
|
```powershell
|
|
tools/run-connected-world-lifecycle-gate.ps1 `
|
|
-Repository <repo> `
|
|
-SkipBuild `
|
|
-SessionTimeoutSeconds 420
|
|
```
|
|
|
|
Raw local evidence:
|
|
`logs/connected-world-gate-20260725-060344/report.json`.
|
|
|
|
Result: PASS.
|
|
|
|
- Capped session: login, Aerlinthe, Rynthid, Facility Hub, Holtburg after
|
|
dungeon, and Aerlinthe revisit all reached a complete visible reveal.
|
|
- Fresh uncapped process: reconnect reached a complete visible reveal.
|
|
- 7/7 checkpoints were ready with render, composite, and collision readiness.
|
|
- No reveal invariant failure, packet/transport failure, `WeenieError`,
|
|
`ObjectDisposedException`, or receive-owner death occurred.
|
|
- Both sessions issued graceful logout, received authoritative confirmation,
|
|
exited through `WM_CLOSE`, and ACE observed `PacketHeader Disconnect`.
|
|
- The only warning was 25 expected world-edge landblock misses.
|
|
|
|
This was an RDP run. It proves correctness, ordering, ownership, cleanup, and
|
|
reconnect behavior; its absolute CPU/GPU/frame-time numbers are not accepted
|
|
as hardware performance evidence.
|
|
|
|
## Production allocation check
|
|
|
|
The connected gate enables lifecycle screenshots and therefore constructs the
|
|
G4 current-path comparison oracle. That oracle fingerprints and sorts the
|
|
complete visible projection set each frame and intentionally allocates in
|
|
proportion to scene size. Its 3.9-10.5 MiB/frame outdoor readings are
|
|
automation observer cost, not the normal production composition.
|
|
|
|
A separate uncapped Release login was captured with no UI probe, automation
|
|
artifact directory, or current-path oracle:
|
|
|
|
```text
|
|
cpu_ms p50=1.9-2.0, p95=2.5-2.8
|
|
gpu_ms p50=1.2-1.3, p95=1.5
|
|
alloc_kb p50=25.6
|
|
```
|
|
|
|
The RDP timing is diagnostic only. The allocation measurement is valid:
|
|
allocation-tick stacks attribute the remaining production bytes primarily to
|
|
the existing `Transition` collision scratch and retained current render
|
|
partition, followed by smaller animation/UI iterators. Those owners are
|
|
explicitly scheduled for Slice I and G5. The H-owned warmed receive and send
|
|
paths themselves are zero-allocation.
|
|
|
|
Accordingly, H closes its scoped owners without weakening the program-level
|
|
target: steady production allocation at or below 4 KiB/frame remains a
|
|
mandatory G5/Slice-I closeout gate.
|
|
|
|
## Exact retained visual rollback
|
|
|
|
The G4 production draw-source visual gate is still pending. If it fails on a
|
|
physical display, revert only:
|
|
|
|
```text
|
|
git revert ef1d263337997bb030eadb7b8e71d73dc659907a
|
|
```
|
|
|
|
Do not revert G3 or the `129dd77d` / `03b10183` portal-warmup corrections.
|