acdream/docs/research/2026-07-25-slice-h-closeout.md

3.8 KiB

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:

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:

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:

git revert ef1d263337997bb030eadb7b8e71d73dc659907a

Do not revert G3 or the 129dd77d / 03b10183 portal-warmup corrections.