Shokunin
c2cf5ffd03
Render-pass worker: run concurrently with emulation
...
The worker only ran inside the emulation thread's pacing idle window, so
heavy scenes (short windows) lost their in-between frames. It now runs
as soon as a job is queued, on its own core, bounded by the job's own
presentation period.
Shared state that made concurrent runs crash or race, now per thread:
- render_pass_mmio_read_allowed could longjmp to the emulation thread's
synchronous-pass jump buffer from the worker (instant crash). The
abort state (s_abort_jmp, s_abort_armed, s_pass_cpu,
s_device_read_fault, s_attempt) is thread-local, and a private
execution aborts its own job through g_psx_execution_abort.
- The VRAM dirty mask: marks from the worker's private snapshot are
dropped (gpu_vram_dirty_set_private_thread).
Plan changes already quiesce (join) the worker before the hook table is
rebuilt.
R4 release, RTX 4080 8K, driven lap, DXGI on-screen count: 4/4 runs
stable (was 1 crash in 2); 50-60 distinct/s on straights.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-22 12:18:31 -07:00
..
2026-08-03 05:26:37 -04:00
2026-09-05 12:38:01 -07:00
2026-10-19 14:07:22 -07:00
2026-10-19 16:36:51 +02:00
2026-09-29 10:58:25 -07:00
2026-09-29 12:26:45 -07:00
2026-07-29 03:18:10 -04:00
2026-10-07 21:41:39 -07:00
2026-10-21 17:33:39 -07:00
2026-10-21 17:33:39 -07:00
2026-10-21 17:33:39 -07:00
2026-07-13 21:38:58 -07:00
2026-08-30 23:24:47 +03:00
2026-10-21 17:33:39 -07:00
2026-07-15 22:22:38 -07:00
2026-10-21 17:33:39 -07:00
2026-10-21 17:33:39 -07:00
2026-10-21 17:33:39 -07:00
2026-08-01 14:13:58 -04:00
2026-10-11 23:43:34 -07:00
2026-09-26 06:31:33 -07:00
2026-10-21 18:31:02 -07:00
2026-10-14 11:29:13 -07:00
2026-08-01 02:15:34 -07:00
2026-10-21 17:33:39 -07:00
2026-10-04 10:50:02 -07:00
2026-09-14 17:26:33 +03:00
2026-09-14 17:26:32 +03:00
2026-09-03 01:23:01 +03:00
2026-10-21 18:02:07 -07:00
2026-10-01 11:36:48 -07:00
2026-10-22 04:46:37 -07:00
2026-10-08 11:16:22 -07:00
2026-10-21 18:02:07 -07:00
2026-10-21 17:33:39 -07:00
2026-10-21 16:16:30 -07:00
2026-10-21 16:16:30 -07:00
2026-08-07 16:42:43 -04:00
2026-10-12 04:40:33 -07:00
2026-10-12 04:40:33 -07:00
2026-10-21 17:33:39 -07:00
2026-08-20 14:51:26 +03:00
2026-10-14 23:49:26 -07:00
2026-10-09 11:19:42 -07:00
2026-10-09 11:19:42 -07:00
2026-10-09 11:19:42 -07:00
2026-10-09 11:19:42 -07:00
2026-10-21 19:24:20 -07:00
2026-10-22 11:08:19 -07:00
2026-10-10 12:55:54 -07:00
2026-10-21 18:02:07 -07:00
2026-07-14 18:34:32 -07:00
2026-10-19 11:44:13 -07:00
2026-10-21 18:02:07 -07:00
2026-10-04 23:18:39 -07:00
2026-10-19 18:13:38 -07:00
2026-07-21 15:54:07 -07:00
2026-10-22 12:18:31 -07:00
2026-10-21 23:32:00 -07:00
2026-10-21 21:44:24 -07:00
2026-10-21 17:33:39 -07:00
2026-09-14 17:26:31 +03:00
2026-10-07 22:51:31 -07:00
2026-10-19 18:13:38 -07:00
2026-10-19 18:13:38 -07:00
2026-10-13 15:02:57 -07:00
2026-10-21 17:09:25 -07:00
2026-10-21 14:11:20 -07:00
2026-10-21 14:11:20 -07:00
2026-10-21 14:11:20 -07:00
2026-10-21 18:02:07 -07:00
2026-10-19 14:07:22 -07:00
2026-10-11 23:43:34 -07:00
2026-09-11 16:38:34 -04:00
2026-07-28 09:22:28 -07:00
2026-10-21 17:33:39 -07:00
2026-10-17 13:15:40 -07:00
2026-10-17 13:15:40 -07:00
2026-10-17 13:15:40 -07:00
2026-10-05 13:49:35 -07:00
2026-10-22 02:09:17 -07:00
2026-10-19 10:38:08 -03:00
2026-10-19 16:00:11 -07:00
2026-10-21 21:44:24 -07:00
2026-08-24 17:03:52 -07:00
2026-10-06 23:24:47 -07:00
2026-10-10 00:48:22 -07:00
2026-09-26 06:02:23 -07:00
2026-08-05 10:40:07 -07:00
2026-10-17 09:19:31 -07:00
2026-10-21 21:44:24 -07:00
2026-10-12 23:44:02 -07:00
2026-10-19 16:37:32 -07:00
2026-10-08 21:33:46 -07:00
2026-10-05 13:11:51 -07:00
2026-09-29 20:57:11 -07:00
2026-10-09 04:33:12 -07:00
2026-10-19 16:00:11 -07:00
2026-10-05 20:24:54 -07:00
2026-10-05 22:52:52 -07:00
2026-10-21 18:02:07 -07:00
2026-10-11 22:40:27 -07:00
2026-08-08 12:29:59 -04:00
2026-09-30 15:58:52 +03:00
2026-10-02 19:13:57 +03:00
2026-10-10 10:53:54 -07:00
2026-10-06 19:37:35 -07:00
2026-10-09 20:40:50 -07:00
2026-10-21 17:33:39 -07:00
2026-07-15 22:22:38 -07:00
2026-10-19 14:07:22 -07:00
2026-10-21 22:00:27 -07:00
2026-07-19 16:19:57 -07:00
2026-07-19 12:11:56 -07:00
2026-10-12 01:20:47 -07:00
2026-10-17 13:15:40 -07:00
2026-10-13 14:33:32 -07:00
2026-08-08 22:50:17 -04:00
2026-10-10 00:48:22 -07:00
2026-10-21 22:24:28 -07:00
2026-10-18 20:55:22 -07:00
2026-10-06 23:24:47 -07:00
2026-10-13 04:03:35 -07:00
2026-10-05 23:33:30 -07:00
2026-10-22 01:28:42 -07:00
2026-10-04 10:55:58 -07:00
2026-10-21 17:33:39 -07:00
2026-10-21 17:33:39 -07:00
2026-10-21 17:33:39 -07:00
2026-10-19 18:13:38 -07:00
2026-10-21 18:02:07 -07:00
2026-10-19 18:13:38 -07:00
2026-10-21 17:33:39 -07:00
2026-10-21 17:33:39 -07:00
2026-10-11 22:44:05 -07:00
2026-10-17 09:19:31 -07:00
2026-10-11 16:16:33 -04:00
2026-10-13 15:02:57 -07:00
2026-10-05 19:28:13 -07:00
2026-10-21 17:09:25 -07:00
2026-09-24 22:06:27 -04:00
2026-10-11 16:16:33 -04:00
2026-10-15 05:17:38 +08:00
2026-10-05 19:28:13 -07:00
2026-09-26 08:03:57 -07:00
2026-10-21 14:11:20 -07:00
2026-10-19 18:13:38 -07:00
2026-08-14 19:12:37 -07:00
2026-10-13 14:33:17 -07:00
2026-09-30 00:24:07 -07:00
2026-10-21 17:09:25 -07:00
2026-10-17 14:43:47 -07:00
2026-07-29 03:18:10 -04:00
2026-07-29 03:18:10 -04:00
2026-08-25 01:54:42 -07:00
2026-09-26 15:38:21 -07:00
2026-10-07 13:40:57 -07:00
2026-10-15 19:09:49 -07:00
2026-10-13 14:31:26 -07:00
2026-10-13 14:31:26 -07:00
2026-07-21 21:37:57 -07:00
2026-10-03 23:46:25 -07:00
2026-10-07 18:20:57 -07:00
2026-10-21 16:16:30 -07:00
2026-10-21 17:09:25 -07:00
2026-10-22 12:18:31 -07:00
2026-10-22 12:18:31 -07:00
2026-10-21 21:44:24 -07:00
2026-10-15 01:50:14 -07:00
2026-10-21 17:33:39 -07:00
2026-10-11 22:38:38 -07:00
2026-10-21 17:33:39 -07:00
2026-09-26 06:31:33 -07:00
2026-10-07 13:40:57 -07:00
2026-10-21 17:33:39 -07:00
2026-10-21 18:02:07 -07:00
2026-10-18 20:55:22 -07:00
2026-10-13 00:06:00 -07:00
2026-10-04 05:54:05 +08:00
2026-07-29 03:18:10 -04:00
2026-10-01 11:13:30 -07:00