From 88edd1acd64d844fddda4d0d7fb292704b3987f0 Mon Sep 17 00:00:00 2001 From: refractionpcsx2 Date: Sun, 25 Jul 2021 15:41:17 +0100 Subject: [PATCH] GIF: Adjusted intermittent mode split of large packets Should be a bit more performant now in games like Tekken Tag Adjusted for The Suffering --- pcsx2/Gif.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/pcsx2/Gif.cpp b/pcsx2/Gif.cpp index e987ad5d7e..38ec6abaaf 100644 --- a/pcsx2/Gif.cpp +++ b/pcsx2/Gif.cpp @@ -278,14 +278,15 @@ static u32 WRITERING_DMA(u32 *pMem, u32 qwc) { if (gifRegs.stat.IMT) { // Splitting by 8qw can be really slow, so on bigger packets be less picky. - // Some games like Wallace & Gromit like smaller packets to be split correctly, hopefully with little impact on speed. - // 68 works for W&G but 128 is more of a safe point. - if (qwc > 128) - qwc = std::min(qwc, 1024u); + // Games seem to be more concerned with other channels finishing before PATH 3 finishes + // so we can get away with transferring "most" of it when it's a big packet. + // Use Wallace and Gromit Project Zoo or The Suffering for testing + if (qwc > 64) + qwc = qwc-64; else qwc = std::min(qwc, 8u); } - + uint size; if (CheckPaths() == false || ((qwc < 8 || gif_fifo.fifoSize > 0) && CHECK_GIFFIFOHACK))