GPU: Let the GPU drive DMA transfers for large time slices

Fixes FMV breakage... again.
This commit is contained in:
Connor McLaughlin
2020-03-26 00:13:20 +10:00
parent d4ae0f13fe
commit 54abd37daa
4 changed files with 45 additions and 36 deletions

View File

@ -74,7 +74,7 @@ void TimingEvent::InvokeEarly(bool force /* = false */)
if (!m_active)
return;
const TickCount pending_ticks = m_system->m_running_events ? 0 : m_system->m_cpu->GetPendingTicks();
const TickCount pending_ticks = m_system->m_cpu->GetPendingTicks();
const TickCount ticks_to_execute = m_time_since_last_run + pending_ticks;
if (!force && ticks_to_execute < m_period)
return;
@ -93,7 +93,7 @@ void TimingEvent::Activate()
return;
// leave the downcount intact
const TickCount pending_ticks = m_system->m_running_events ? 0 : m_system->m_cpu->GetPendingTicks();
const TickCount pending_ticks = m_system->m_cpu->GetPendingTicks();
m_downcount += pending_ticks;
m_time_since_last_run -= pending_ticks;
@ -106,7 +106,7 @@ void TimingEvent::Deactivate()
if (!m_active)
return;
const TickCount pending_ticks = m_system->m_running_events ? 0 : m_system->m_cpu->GetPendingTicks();
const TickCount pending_ticks = m_system->m_cpu->GetPendingTicks();
m_downcount -= pending_ticks;
m_time_since_last_run += pending_ticks;