DS GX: Hack to prevent FIFO from overflowing during STMs

This commit is contained in:
Vicki Pfau 2017-03-20 10:09:50 -07:00
parent 35b6b7ddb4
commit 3ccd29245c
1 changed files with 3 additions and 1 deletions

View File

@ -1672,7 +1672,9 @@ static void DSGXWriteFIFO(struct DSGX* gx, struct DSGXEntry entry) {
if (CircleBufferSize(&gx->fifo) == (DS_GX_FIFO_SIZE * sizeof(entry))) {
mLOG(DS_GX, INFO, "FIFO full");
if (gx->p->cpuBlocked & DS_CPU_BLOCK_GX) {
abort();
// Can happen from STM
mTimingDeschedule(&gx->p->ds9.timing, &gx->fifoEvent);
_fifoRun(&gx->p->ds9.timing, gx, 0);
}
gx->p->cpuBlocked |= DS_CPU_BLOCK_GX;
gx->outstandingEntry = entry;