From f5c550e9cb8f5bbc6a4f9bd77bc84c077671c480 Mon Sep 17 00:00:00 2001 From: Scott Mansell Date: Thu, 25 Nov 2021 11:01:37 +1300 Subject: Delay singlecore gpu interrupts Fixes Bomberman Jetters in single core mode. When single core mode pauses the CPU to execute the GPU FIFO it greedily executes the whole thing. Before this commit, Finish and Token interrupts would happen instantly, not even taking into account how long the current FIFO window has taken to execute. The interrupts would be effectively backdated to the start of this execution window. This commit does two things: It pipes the current FIFO window execution time though to the interrupt scheduling and it enforces a minimum delay of 500 cycles before an interrupt will be fired. --- Source/Core/VideoCommon/OpcodeDecoding.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'Source/Core/VideoCommon/OpcodeDecoding.cpp') diff --git a/Source/Core/VideoCommon/OpcodeDecoding.cpp b/Source/Core/VideoCommon/OpcodeDecoding.cpp index 00f470d5f4..a1abacc4c6 100644 --- a/Source/Core/VideoCommon/OpcodeDecoding.cpp +++ b/Source/Core/VideoCommon/OpcodeDecoding.cpp @@ -221,11 +221,11 @@ u8* Run(DataReader src, u32* cycles, bool in_display_list) const u32 bp_cmd = src.Read(); if constexpr (is_preprocess) { - LoadBPRegPreprocess(bp_cmd); + LoadBPRegPreprocess(bp_cmd, total_cycles); } else { - LoadBPReg(bp_cmd); + LoadBPReg(bp_cmd, total_cycles); INCSTAT(g_stats.this_frame.num_bp_loads); } } -- cgit v1.2.3