GPU: Flush rendering when drawing offset changes

This commit is contained in:
Connor McLaughlin 2019-10-05 23:29:36 +10:00
parent 2a0483f571
commit e286d6389c
1 changed files with 9 additions and 2 deletions

View File

@ -482,9 +482,16 @@ void GPU::WriteGP0(u32 value)
case 0xE5: // Set drawing offset
{
m_drawing_offset.x = SignExtendN<11, u32>(param & UINT32_C(0x7FF));
m_drawing_offset.y = SignExtendN<11, u32>((param >> 11) & UINT32_C(0x7FF));
const s32 x = SignExtendN<11, s32>(param & UINT32_C(0x7FF));
const s32 y = SignExtendN<11, s32>((param >> 11) & UINT32_C(0x7FF));
Log_DebugPrintf("Set drawing offset (%d, %d)", m_drawing_offset.x, m_drawing_offset.y);
if (m_drawing_offset.x != x || m_drawing_offset.y != y)
{
FlushRender();
m_drawing_offset.x = x;
m_drawing_offset.y = y;
}
}
break;