chrg6
c040ca6c5f
Write the frame-time summary and the stutter map at a fatal error too, the map only when its lock is free.
...
dispatch.c fatal_end wrote only the profiler's samples, so a run that ended in a FATAL had no "frametime" or
stutter-map lines for its last period: the numbers that would show what the game was doing before it failed.
perf.c perf_summary_flush_try (weak in dispatch.c for builds without perf.c) runs after fs_save_crash_wait: ft_stop,
then the running period's "frametime: at a fatal error" lines and the stutter map. The failing thread may hold any
lock, so stutter_map.c gains stutter_report_as(tag, try_only), which only tries sm_lock and writes nothing when it is
taken (stutter_report keeps the blocking take); the back end's exit lines (gfx_exit_log) and the trace's segments
(seg_close) are left out, as they read state the failure may have left half made. The crash report keeps no summary:
its state may be damaged.
Not reproduced before the change (a missing diagnostic). tests/fatal_exit_check.py now wants the summary at
rt_fatal and checks statically that perf_summary_flush_try only tries the map's lock and leaves the back end out;
tests/stutter_hitch_check.c gets the trylock stand-in it needs. fatal_exit_check, stutter_hitch_check,
stutter_map_check and the compile checks of every runtime file pass.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-13 18:43:23 -05:00
..
2026-11-08 15:51:48 -05:00
2026-11-10 23:16:17 -05:00
2026-11-10 23:16:17 -05:00
2026-11-13 18:41:40 -05:00
2026-11-13 18:41:40 -05:00
2026-11-10 22:59:02 -05:00
2026-11-09 08:19:19 -05:00
2026-11-13 18:41:46 -05:00
2026-11-12 15:17:48 -05:00
2026-11-12 22:24:22 -05:00
2026-11-12 20:03:12 -05:00
2026-11-11 04:42:07 -05:00
2026-11-11 04:42:07 -05:00
2026-11-13 18:41:45 -05:00
2026-11-13 18:41:46 -05:00
2026-11-13 18:41:45 -05:00
2026-11-13 18:41:39 -05:00
2026-11-13 18:41:39 -05:00
2026-11-13 18:42:34 -05:00
2026-11-13 18:42:34 -05:00
2026-11-13 18:42:10 -05:00
2026-11-13 18:41:45 -05:00
2026-11-13 18:41:45 -05:00
2026-11-13 07:55:56 -05:00
2026-11-13 18:41:46 -05:00
2026-11-13 18:42:10 -05:00
2026-11-13 18:42:10 -05:00
2026-11-11 04:35:30 -05:00
2026-11-09 08:21:07 -05:00
2026-11-09 08:21:07 -05:00
2026-11-13 18:41:40 -05:00
2026-11-13 18:41:40 -05:00
2026-11-13 18:41:45 -05:00
2026-11-12 14:57:13 -05:00
2026-11-13 18:42:10 -05:00
2026-11-13 18:43:23 -05:00
2026-11-13 18:43:23 -05:00
2026-11-11 05:22:56 -05:00
2026-11-12 12:07:19 -05:00
2026-11-12 12:07:19 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:38 -05:00
2026-11-12 15:16:30 -05:00
2026-11-12 15:16:30 -05:00
2026-11-13 07:08:49 -05:00
2026-11-13 07:08:49 -05:00
2026-11-13 15:57:52 -05:00
2026-11-13 15:57:52 -05:00
2026-11-13 18:42:10 -05:00
2026-11-11 19:38:18 -05:00
2026-11-13 18:41:40 -05:00
2026-11-13 18:41:40 -05:00
2026-11-12 23:21:17 -05:00
2026-11-10 02:25:14 -05:00
2026-11-13 18:41:39 -05:00
2026-11-13 18:41:39 -05:00
2026-11-13 18:42:34 -05:00
2026-11-13 18:42:34 -05:00
2026-11-13 18:41:40 -05:00
2026-11-13 18:41:40 -05:00
2026-11-09 20:51:08 -05:00
2026-11-13 08:36:46 -05:00
2026-11-13 08:36:46 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:38 -05:00
2026-11-08 15:51:48 -05:00
2026-11-13 18:41:46 -05:00
2026-11-13 18:41:46 -05:00
2026-11-07 05:04:40 -05:00
2026-11-13 15:57:52 -05:00
2026-11-13 18:42:10 -05:00
2026-11-13 18:42:10 -05:00
2026-11-12 15:12:51 -05:00
2026-11-07 05:04:40 -05:00
2026-11-09 08:09:26 -05:00
2026-11-13 07:55:56 -05:00
2026-11-13 07:55:56 -05:00
2026-11-13 06:46:31 -05:00
2026-11-13 06:46:31 -05:00
2026-11-11 04:48:36 -05:00
2026-11-11 04:48:36 -05:00
2026-11-13 12:54:24 -05:00
2026-11-13 12:54:24 -05:00
2026-11-07 05:04:38 -05:00
2026-11-11 08:23:56 -05:00
2026-11-10 12:48:50 -05:00
2026-11-10 12:48:50 -05:00
2026-11-13 18:41:46 -05:00
2026-11-13 18:41:45 -05:00
2026-11-07 05:04:38 -05:00
2026-11-13 08:36:46 -05:00
2026-11-13 08:36:46 -05:00
2026-11-07 05:04:38 -05:00
2026-11-11 19:38:18 -05:00
2026-11-12 22:34:22 -05:00
2026-11-12 22:34:22 -05:00
2026-11-13 18:41:45 -05:00
2026-11-13 18:41:39 -05:00
2026-11-12 22:30:46 -05:00
2026-11-11 04:29:31 -05:00
2026-11-11 04:29:31 -05:00
2026-11-12 08:25:42 -05:00
2026-11-10 06:31:27 -05:00
2026-11-12 15:00:27 -05:00
2026-11-10 12:49:10 -05:00
2026-11-12 22:53:00 -05:00
2026-11-11 04:36:33 -05:00
2026-11-11 04:36:33 -05:00
2026-11-09 14:16:19 -05:00
2026-11-10 01:55:30 -05:00
2026-11-07 05:04:40 -05:00
2026-11-13 18:41:39 -05:00
2026-11-13 18:41:39 -05:00
2026-11-13 18:41:39 -05:00
2026-11-13 18:41:39 -05:00
2026-11-12 22:28:36 -05:00
2026-11-12 22:28:36 -05:00
2026-11-11 05:25:38 -05:00
2026-11-11 05:25:38 -05:00
2026-11-13 09:08:40 -05:00
2026-11-11 00:11:41 -05:00
2026-11-09 13:13:43 -05:00
2026-11-09 13:13:43 -05:00
2026-11-12 23:21:17 -05:00
2026-11-12 23:21:17 -05:00
2026-11-12 20:03:45 -05:00
2026-11-12 20:03:45 -05:00
2026-11-07 05:04:40 -05:00
2026-11-12 22:57:56 -05:00
2026-11-12 22:54:58 -05:00
2026-11-13 07:55:56 -05:00
2026-11-13 07:55:56 -05:00
2026-11-13 18:43:23 -05:00
2026-11-13 08:23:11 -05:00
2026-11-13 18:41:39 -05:00
2026-11-13 12:54:24 -05:00
2026-11-13 12:54:24 -05:00
2026-11-12 15:18:25 -05:00
2026-11-11 00:11:41 -05:00
2026-11-13 18:41:46 -05:00
2026-11-13 18:41:46 -05:00
2026-11-10 12:14:29 -05:00
2026-11-10 12:02:12 -05:00
2026-11-09 08:09:26 -05:00
2026-11-12 22:33:29 -05:00
2026-11-12 22:33:29 -05:00
2026-11-13 08:35:42 -05:00
2026-11-13 08:35:42 -05:00
2026-11-13 15:57:52 -05:00
2026-11-13 00:12:31 -05:00
2026-11-13 00:53:22 -05:00
2026-11-13 00:53:22 -05:00
2026-11-12 15:18:25 -05:00
2026-11-12 15:18:25 -05:00
2026-11-11 05:29:06 -05:00
2026-11-13 18:41:46 -05:00
2026-11-10 09:13:35 -05:00
2026-11-10 09:13:35 -05:00
2026-11-12 07:55:57 -05:00
2026-11-10 15:20:47 -05:00
2026-11-10 15:15:34 -05:00
2026-11-07 05:04:38 -05:00
2026-11-13 18:41:45 -05:00