mirror of https://github.com/PCSX2/pcsx2.git
pcsx2: call GSReadFIFO from GS thread (was EE)
This commit is contained in:
parent
39a9b7b721
commit
f78c39cc98
|
@ -50,8 +50,8 @@ void __fastcall ReadFIFO_VIF1(mem128_t* out)
|
||||||
DevCon.Warning("Warning! GS Download size < FIFO count!");
|
DevCon.Warning("Warning! GS Download size < FIFO count!");
|
||||||
}
|
}
|
||||||
if (vif1Regs.stat.FQC > 0) {
|
if (vif1Regs.stat.FQC > 0) {
|
||||||
|
GetMTGS().SendPointerPacket(GS_RINGTYPE_READ_FIFO1, 0, out);
|
||||||
GetMTGS().WaitGS();
|
GetMTGS().WaitGS();
|
||||||
GSreadFIFO((u64*)out);
|
|
||||||
vif1.GSLastDownloadSize--;
|
vif1.GSLastDownloadSize--;
|
||||||
GUNIT_LOG("ReadFIFO_VIF1");
|
GUNIT_LOG("ReadFIFO_VIF1");
|
||||||
if (vif1.GSLastDownloadSize <= 16)
|
if (vif1.GSLastDownloadSize <= 16)
|
||||||
|
|
|
@ -247,6 +247,8 @@ enum MTGS_RingCommand
|
||||||
, GS_RINGTYPE_CRC
|
, GS_RINGTYPE_CRC
|
||||||
, GS_RINGTYPE_GSPACKET
|
, GS_RINGTYPE_GSPACKET
|
||||||
, GS_RINGTYPE_MTVU_GSPACKET
|
, GS_RINGTYPE_MTVU_GSPACKET
|
||||||
|
, GS_RINGTYPE_READ_FIFO1
|
||||||
|
, GS_RINGTYPE_READ_FIFO2
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -495,6 +495,14 @@ void SysMtgsThread::ExecuteTaskInThread()
|
||||||
GSsetGameCRC( tag.data[0], 0 );
|
GSsetGameCRC( tag.data[0], 0 );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case GS_RINGTYPE_READ_FIFO1:
|
||||||
|
GSreadFIFO( (u64*)tag.data[1]);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GS_RINGTYPE_READ_FIFO2:
|
||||||
|
GSreadFIFO2( (u64*)tag.data[1], tag.data[0]);
|
||||||
|
break;
|
||||||
|
|
||||||
#ifdef PCSX2_DEVBUILD
|
#ifdef PCSX2_DEVBUILD
|
||||||
default:
|
default:
|
||||||
Console.Error("GSThreadProc, bad packet (%x) at m_ReadPos: %x, m_WritePos: %x", tag.command, m_ReadPos, m_WritePos);
|
Console.Error("GSThreadProc, bad packet (%x) at m_ReadPos: %x, m_WritePos: %x", tag.command, m_ReadPos, m_WritePos);
|
||||||
|
|
|
@ -67,8 +67,8 @@ void vif1TransferToMemory()
|
||||||
pxAssert(p3.isDone() || !p3.gifTag.isValid);
|
pxAssert(p3.isDone() || !p3.gifTag.isValid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GetMTGS().SendPointerPacket(GS_RINGTYPE_READ_FIFO2, size, pMem);
|
||||||
GetMTGS().WaitGS();
|
GetMTGS().WaitGS();
|
||||||
GSreadFIFO2((u64*)pMem, size);
|
|
||||||
pMem += size;
|
pMem += size;
|
||||||
|
|
||||||
if(pMem < pMemEnd) {
|
if(pMem < pMemEnd) {
|
||||||
|
|
Loading…
Reference in New Issue