runtime: optimize MDEC FMV hot paths

Reconstruct the shareable pieces from PR #58 onto current master: add contiguous MDEC DMA input bursts, reduce per-pixel/per-byte MDEC output overhead, add sparse IDCT fast paths, and keep the MDEC activity stamp sane across rematches.

Also quiet the heavy debug trace recorders while MDEC video is active so debug builds can query state without starving FMV playback.

Regression testing was done with non-debug OpenGL builds across multiple FMV-heavy titles. Debug-tool FMV playback was also exercised with the quiet gate enabled.

Co-authored-by: Alex Vanderveen <alex@technicallycomputers.ca>

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Matthew Stanley
2026-07-21 14:29:38 -07:00
parent a66c50c656
commit e4e27f02b5
6 changed files with 218 additions and 36 deletions
+1
View File
@@ -2609,6 +2609,7 @@ static void load_transition_note(int read_active, int load_active,
/* Called from gpu_vblank_tick() at each simulated vblank. */
static void sdl_vblank_present(void) {
#ifndef PSX_NO_DEBUG_TOOLS
debug_server_set_fmv_quiet(mdec_recently_active(2));
/* Debug server: pause gate, poll commands, record frame, check watchpoints. */
debug_server_wait_if_paused();
debug_server_poll();