From e6b363ef54653bbf1372f95aaf141961d0ba5a56 Mon Sep 17 00:00:00 2001 From: refraction Date: Fri, 28 Feb 2014 21:38:04 +0000 Subject: [PATCH] Path3 Masking: Lower the Intermediate mode threshold for smaller packets, fixes some small texture glitches on Path3 masking games such as Wallace & Gromit git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5919 96395faa-99c1-11dd-bbfe-3dabce05a288 --- pcsx2/Gif.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/pcsx2/Gif.cpp b/pcsx2/Gif.cpp index 96e3ba08b9..c28849e81c 100644 --- a/pcsx2/Gif.cpp +++ b/pcsx2/Gif.cpp @@ -117,7 +117,16 @@ __fi void gifInterrupt() } static u32 WRITERING_DMA(u32 *pMem, u32 qwc) { - if(gifRegs.stat.IMT) qwc = std::min(qwc, 1024u); + 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); + else + qwc = std::min(qwc, 8u); + } uint size = gifUnit.TransferGSPacketData(GIF_TRANS_DMA, (u8*)pMem, qwc*16) / 16; incGifChAddr(size); return size;