mirror of
https://github.com/RetroDECK/Duckstation.git
synced 2025-01-31 11:55:37 +00:00
GPU: Ensure pending time is used in events
Fixes long delay in Syphon Filter.
This commit is contained in:
parent
75156b76af
commit
4d9c2c1b6c
|
@ -769,6 +769,7 @@ void GPU::CRTCTickEvent(TickCount ticks)
|
||||||
void GPU::CommandTickEvent(TickCount ticks)
|
void GPU::CommandTickEvent(TickCount ticks)
|
||||||
{
|
{
|
||||||
m_pending_command_ticks -= SystemTicksToGPUTicks(ticks);
|
m_pending_command_ticks -= SystemTicksToGPUTicks(ticks);
|
||||||
|
m_command_tick_event->Deactivate();
|
||||||
|
|
||||||
// we can be syncing if this came from a DMA write. recursively executing commands would be bad.
|
// we can be syncing if this came from a DMA write. recursively executing commands would be bad.
|
||||||
if (!m_syncing)
|
if (!m_syncing)
|
||||||
|
@ -777,14 +778,9 @@ void GPU::CommandTickEvent(TickCount ticks)
|
||||||
UpdateGPUIdle();
|
UpdateGPUIdle();
|
||||||
|
|
||||||
if (m_pending_command_ticks <= 0)
|
if (m_pending_command_ticks <= 0)
|
||||||
{
|
|
||||||
m_pending_command_ticks = 0;
|
m_pending_command_ticks = 0;
|
||||||
m_command_tick_event->Deactivate();
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
|
||||||
m_command_tick_event->SetIntervalAndSchedule(GPUTicksToSystemTicks(m_pending_command_ticks));
|
m_command_tick_event->SetIntervalAndSchedule(GPUTicksToSystemTicks(m_pending_command_ticks));
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void GPU::UpdateCommandTickEvent()
|
void GPU::UpdateCommandTickEvent()
|
||||||
|
|
Loading…
Reference in a new issue