GPU: Synchronize before filling/writing with interlaced rendering

This commit is contained in:
Connor McLaughlin 2020-05-17 21:51:33 +10:00
parent 88cc695d0b
commit 096ed21767

View file

@ -446,6 +446,9 @@ bool GPU::HandleFillRectangleCommand()
{ {
CHECK_COMMAND_SIZE(3); CHECK_COMMAND_SIZE(3);
if (IsInterlacedRenderingEnabled() && IsRasterScanlinePending())
Synchronize();
FlushRender(); FlushRender();
const u32 color = m_fifo.Pop() & 0x00FFFFFF; const u32 color = m_fifo.Pop() & 0x00FFFFFF;
@ -499,7 +502,11 @@ void GPU::FinishVRAMWrite()
m_blit_buffer.data(), true); m_blit_buffer.data(), true);
} }
if (IsInterlacedRenderingEnabled() && IsRasterScanlinePending())
Synchronize();
FlushRender(); FlushRender();
UpdateVRAM(m_vram_transfer.x, m_vram_transfer.y, m_vram_transfer.width, m_vram_transfer.height, m_blit_buffer.data()); UpdateVRAM(m_vram_transfer.x, m_vram_transfer.y, m_vram_transfer.width, m_vram_transfer.height, m_blit_buffer.data());
m_blit_buffer.clear(); m_blit_buffer.clear();
m_vram_transfer = {}; m_vram_transfer = {};