GPU: Don't recursively execute commands
This can happen with interlaced rendering on when a line is pending scanout and a primitive is drawn. Fixes screen transitions in Slap Happy Rhythm Busters.
This commit is contained in:
parent
0bdac9e4be
commit
664bd06df6
|
@ -619,7 +619,11 @@ void GPU::Execute(TickCount ticks)
|
||||||
if (m_command_ticks > 0)
|
if (m_command_ticks > 0)
|
||||||
{
|
{
|
||||||
m_command_ticks -= gpu_ticks;
|
m_command_ticks -= gpu_ticks;
|
||||||
|
|
||||||
|
// we can be syncing if this came from a DMA write. recursively executing commands would be bad.
|
||||||
|
if (!m_syncing)
|
||||||
ExecuteCommands();
|
ExecuteCommands();
|
||||||
|
|
||||||
if (m_command_ticks < 0)
|
if (m_command_ticks < 0)
|
||||||
m_command_ticks = 0;
|
m_command_ticks = 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue