@@ -1718,14 +1718,6 @@ void CCore::UpdateRecentlyPlayed()
17181718 CCore::GetSingleton ().SaveConfig ();
17191719}
17201720
1721- //
1722- // Called just before GTA calculates frame time deltas
1723- //
1724- void CCore::OnGameTimerUpdate ()
1725- {
1726- ApplyQueuedFrameRateLimit ();
1727- }
1728-
17291721//
17301722// Recalculate FPS limit to use
17311723//
@@ -1801,47 +1793,34 @@ void CCore::ApplyFrameRateLimit(uint uiOverrideRate)
18011793
18021794 uint uiUseRate = uiOverrideRate != -1 ? uiOverrideRate : m_uiFrameRateLimit;
18031795
1804- if (uiUseRate > 0 )
1805- {
1806- // Apply previous frame rate if is hasn't been done yet
1807- ApplyQueuedFrameRateLimit ();
1796+ TIMING_GRAPH (" Limiter" );
1797+
1798+ if (uiUseRate < 1 )
1799+ return DoReliablePulse ();
1800+
1801+ if (m_DiagnosticDebug != EDiagnosticDebug::D3D_6732)
1802+ Sleep (1 ); // Make frame rate smoother maybe
18081803
1809- // Limit is usually applied in OnGameTimerUpdate
1810- m_uiQueuedFrameRate = uiUseRate;
1811- m_bQueuedFrameRateValid = true ;
1804+ // Calc required time in ms between frames
1805+ const double dTargetTimeToUse = 1000.0 / uiUseRate;
1806+
1807+ while (true )
1808+ {
1809+ // See if we need to wait
1810+ double dSpare = dTargetTimeToUse - m_FrameRateTimer.Get ();
1811+ if (dSpare <= 0.0 )
1812+ break ;
1813+ if (dSpare >= 2.0 )
1814+ Sleep (1 );
18121815 }
1816+ m_FrameRateTimer.Reset ();
18131817
18141818 DoReliablePulse ();
18151819
18161820 TIMING_GRAPH (" FrameEnd" );
18171821 TIMING_GRAPH (" " );
18181822}
18191823
1820- //
1821- // Frame rate limit (wait) is done here.
1822- //
1823- void CCore::ApplyQueuedFrameRateLimit ()
1824- {
1825- if (m_bQueuedFrameRateValid)
1826- {
1827- m_bQueuedFrameRateValid = false ;
1828- // Calc required time in ms between frames
1829- const double dTargetTimeToUse = 1000.0 / m_uiQueuedFrameRate;
1830-
1831- while (true )
1832- {
1833- // See if we need to wait
1834- double dSpare = dTargetTimeToUse - m_FrameRateTimer.Get ();
1835- if (dSpare <= 0.0 )
1836- break ;
1837- if (dSpare >= 2.0 )
1838- Sleep (1 );
1839- }
1840- m_FrameRateTimer.Reset ();
1841- TIMING_GRAPH (" Limiter" );
1842- }
1843- }
1844-
18451824//
18461825// DoReliablePulse
18471826//
0 commit comments