Commit Graph
2 Commits
Author SHA1 Message Date
Brian DegenhardtandClaude 5458d12ca1 eerunner: VU0-aware fingerprints, divergence census, frame-local RAM diff
Three stepdiff triage upgrades built during the Jak 3 artifact hunt:

- EERUNNER_VU0FP=1 mixes VU0 macro-visible state (VF00-31, ACC, the
  STATUS/MAC/CLIP flag VIs) into the divtrace fingerprint and captures it
  in FullSnap/DiffFullSnaps, so the zoom breaks at the EE block whose COP2
  macro emission first produced divergent VU0 state instead of only when
  it later lands in a GPR or memory (the default fingerprint surfaced the
  Jak 3 fMax vertex flood at an unrelated memcpy). VF is memory-resident
  at every block boundary per the COP2 VF-cache seam policy, so the JIT
  block-prologue sample site reads consistent state. Opt-in: the benign
  filters were tuned without VU0 fields, and mVU-vs-interp has by-design
  NaN/clamp corners.

- EERUNNER_CENSUS=1 stops the zoom hard-stopping at the first non-benign
  divergence: each data/control site is reported compactly, ResyncAfter
  walks past TRANSIENT ones (DMA-phase staging buffers, poll-phase
  control-flow splits that reconverge), and the walk stops at the first
  PERSISTENT site. Persistent control-flow sites also dump the JIT-side
  guest regs at the split entry (busy-poll operands), the polled word when
  it resolves to RAM, and both sides' frame-end SPR channel registers.

- The stepdiff candidate-real branch now re-runs the frame once per mode
  from the same checkpoint and byte-diffs EE RAM+scratch (ReportMemDiff,
  max_show now a parameter): with a clean interp control every differing
  byte is a real JIT store difference, at frame-local granularity.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-19 21:02:39 -07:00
8fb919e6f7 arm64: in-process recompiler differential-test + diagnostics framework
DiffJitVsInterp harness (EE/IOP/VU synthetic JIT-vs-interpreter tests) plus the
shared capture/divergence-localizer infrastructure (vu_capture, ee_divtrace,
microVU_Divtrace, VU1Trace) and the test hooks they install in interp/GIF/COP2 paths.
All hook sites are guarded by PCSX2_RECOMPILER_TESTS and compile out of release builds.

Co-Authored-By: Ryan Walklin <ryan@testtoast.com>
Co-Authored-By: Brian Degenhardt <bmd@bmdhacks.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 20:27:56 -07:00