Files
xenia-rs/audit-runs/phase-c13-game-dat-files-tbl/re-validation.md
MechaCat02 ef93a4fa14 handoff: VSync/event-wedge fixes + iterate 2.A–2.BC research notes
Source changes (dormant parity infra, retained from iterate 2.AI/2.AO):
- xenia-kernel/exports.rs: nt_create_event manual_reset polarity +
  related event wiring
- xenia-gpu/mmio_region.rs: D1MODE_VBLANK_VLINE_STATUS hardcode parity

Also lands the audit-runs/ analysis notes (.md/.txt/.json digests) for the
iterate 2.x VSync/0x10e8/0x1004 wedge investigation. Raw trace dumps
(.jsonl/.gz/.csv/.stdout) and agent worktrees (.claude/) are gitignored as
regenerable local artifacts — see memory + HANDOFF for the running findings.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 07:19:08 +02:00

51 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Phase C+13 re-validation (cold-vs-cold)
## Cache-wipe protocol (per C+12 reading-error #33)
Both canary storage roots wiped (binary-dir under wine + Linux-build
fallback) before each cold canary run; ours's persistent
`~/.local/share/xenia-rs/cache` wiped between each cold ours run.
Step-by-step:
1. Backup canary's binary-dir cache to `/tmp/canary-bindir-cache-backup.tar.gz`
(4.7 MB, pre-existing oracle preserved).
2. Wipe:
- `find ~/.local/share/xenia-rs/cache -mindepth 1 -delete`
- `find ~/.local/share/Xenia/cache -mindepth 1 -delete` (was already empty)
- `find xenia-canary/build-cross/bin/Windows/Debug/cache -mindepth 1 -delete`
3. Rename ours binary: `cp target/release/xenia-rs target/release/xrs-c13`.
4. Rename canary binary: `cp xenia_canary.exe xc-c13.exe`.
5. 3× cold ours runs with cache wiped before each:
- `find ~/.local/share/xenia-rs/cache -mindepth 1 -delete`
- `./target/release/xrs-c13 check --stable-digest -n 50000000 --out <digest>.json "<ISO>"`
- All three digests bit-identical: `e1dfcb1559f987b35012a7f2dc6d93f5`.
6. Cold ours run with event log:
- `./target/release/xrs-c13 exec --phase-a-event-log /tmp/ours-cold-c13-1.jsonl -n 50000000 "<ISO>"`.
7. Cold canary run (background; killed via `wineserver -k` after
reaching ~6.5 M total events, ~250k tid=6):
- `cd xenia-canary/build-cross/bin/Windows/Debug && /usr/bin/wine ./xc-c13.exe --mute=true --phase_a_event_log_path=/tmp/canary-cold-c13.jsonl "<ISO>"`.
8. Truncate canary jsonl per-tid (tid=6 cap 250k, others 20k cap).
9. Diff: `python3 xenia-rs/tools/diff-events/diff_events.py --canary <truncated> --ours <ours-cold-c13-1.jsonl> --out /tmp/diff-c13.md`.
10. Restore canary's binary-dir cache from backup.
11. Re-run Phase B snapshot to confirm `image_loaded_sha256` unchanged.
## Gate matrix
| gate | result | notes |
|---|---|---|
| Build (`cargo build --release`) | PASS | 1 unrelated `dead_code` warning, no errors |
| Kernel tests (177 → 181) | PASS | 4 new C+13 tests, all pass |
| Full workspace tests | PASS | all crates green (verified via `cargo test --release` summary) |
| Determinism — 3× cold stable-digest | PASS | `e1dfcb1559f987b35012a7f2dc6d93f5` (all 3) |
| Stable digest changed vs C+12 baseline | EXPECTED | `ad4f74ee…``e1dfcb15…` (imports -57, instructions +5) — the fix flips the synth-success branch to NOT_FOUND, shedding a kernel.call/return pair per masked probe |
| Phase B `image_loaded_sha256` unchanged | PASS | `ea8d160e9369328a5b922258a92113efb8d7ce3e1a5c12cc521e375985c91c18` |
| Cold-vs-cold main matched prefix | PASS | **103,862 → 104,574 (+712)** on main chain |
| Sister-chain regression check | PASS | all 5 sister chains unchanged (matched-prefix unchanged) |
| Canary's binary-dir cache restored | PASS | 23-file oracle re-extracted from backup |
## Failure analysis (Reading-error #23 guard)
The main chain ADVANCED, did not regress. Sister chains all
preserved. The fix is monotone-positive for the diff metric.