Commit Graph
4 Commits
Author SHA1 Message Date
Dean Galvin e79ea36180 fix(run-report): keep the counted shader failure in HostThreadLocal; check the host CPU as a report
NoteFailureOnce kept the last counted exception in a thread_local
std::exception_ptr. In a prx on Windows its destructor runs after emulated
TLS freed the object, which prx_thread_local_destructors refuses. Keep it in
HostThreadLocal like the recompiler's other per-thread state.

host-probe checked the raw CPU name with SafeText, which rejects '@', so it
failed on CPUs whose name ends in a clock ("... CPU @ 2.10GHz") although the
report keeps the name with the clock cut. Check it through the report.

NotImplemented_nid_no_patch now expands to NotImplementedAt_nid_no_patch, so
emscripten_module_unwind_tests, which does not link libc, also stubs the
located entry point.
2026-11-05 00:14:07 +13:00
Dean Galvin fd4f6c74d9 feat(run-report): count milestones, frames, GPU and shader diagnostics
The run report now records how far a run got (loaded, started, first draw,
first present), the frames presented and the average frame rate, the selected
GPU, the number of shaders compiled, failed and served from the cache, the
instructions the shader recompiler could not translate, the guest image
formats looked up or rejected, and the descriptor kinds that shaders bind.
The counters are relaxed atomics and are only touched while a report is being
collected. The window system's request to quit is recorded as the reason a run
ended.
2026-11-01 17:15:09 +13:00
Dean Galvin 3794592507 fix(run-report): make the schema test work on Windows
The schema test starts run_report_tests from Python: the libc folder was not
on PATH, so the executable failed to load (0xc0000135), and the --dump mode
that writes the sample reports existed only on POSIX, so there was nothing to
validate.
2026-11-01 17:06:15 +13:00
Dean Galvin 5769999282 feat(run-report): write the run report when a game ends
A run of a converted game writes anyps5-report.json when it ends through
exit or _exit (or the entry returns): the build revision, the game, the
machine, and the unimplemented functions that were called. It is on by
default; --aps5-report=off or APS5_REPORT=0 turns it off. Every text value is
filtered for user names, host names, addresses and account numbers. Runs that
crash, abort or are killed write no report yet; milestones, frame counts and
shader and image lists are marked as not collected.
2026-11-01 13:55:14 +13:00