handle changed VCount+threaded rasteriser more gracefully

This commit is contained in:
RSDuck
2021-08-04 14:21:45 +02:00
parent f86ba0fcb3
commit f792d3e6a1
3 changed files with 39 additions and 17 deletions

View File

@ -1061,6 +1061,12 @@ void FinishFrame(u32 lines)
AssignFramebuffers();
TotalScanlines = lines;
if (GPU3D::AbortFrame)
{
GPU3D::RestartFrame();
GPU3D::AbortFrame = false;
}
}
void StartScanline(u32 line)
@ -1180,6 +1186,7 @@ void SetVCount(u16 val)
// 3D engine seems to give up on the current frame in that situation, repeating the last two scanlines
// TODO: also check the various DMA types that can be involved
GPU3D::AbortFrame |= NextVCount != val;
NextVCount = val;
}