Index: cc/frame_rate_controller.cc |
diff --git a/cc/frame_rate_controller.cc b/cc/frame_rate_controller.cc |
index 436e80dd52bb346006eb9609848079b5411e92e4..60fbde788f2f668111e154874c6a54a671e94134 100644 |
--- a/cc/frame_rate_controller.cc |
+++ b/cc/frame_rate_controller.cc |
@@ -10,14 +10,6 @@ |
#include "cc/time_source.h" |
#include "cc/thread.h" |
-namespace { |
- |
-// This will be the maximum number of pending frames unless |
-// FrameRateController::setMaxFramesPending is called. |
-const int defaultMaxFramesPending = 2; |
- |
-} // namespace |
- |
namespace cc { |
class FrameRateControllerTimeSourceAdapter : public TimeSourceClient { |
@@ -41,7 +33,7 @@ private: |
FrameRateController::FrameRateController(scoped_refptr<TimeSource> timer) |
: m_client(0) |
, m_numFramesPending(0) |
- , m_maxFramesPending(defaultMaxFramesPending) |
+ , m_maxFramesPending(0) |
, m_timeSource(timer) |
, m_active(false) |
, m_swapBuffersCompleteSupported(true) |
@@ -56,7 +48,7 @@ FrameRateController::FrameRateController(scoped_refptr<TimeSource> timer) |
FrameRateController::FrameRateController(Thread* thread) |
: m_client(0) |
, m_numFramesPending(0) |
- , m_maxFramesPending(defaultMaxFramesPending) |
+ , m_maxFramesPending(0) |
, m_active(false) |
, m_swapBuffersCompleteSupported(true) |
, m_isTimeSourceThrottling(false) |
@@ -90,7 +82,7 @@ void FrameRateController::setActive(bool active) |
void FrameRateController::setMaxFramesPending(int maxFramesPending) |
{ |
- DCHECK(maxFramesPending > 0); |
+ DCHECK_GE(maxFramesPending, 0); |
m_maxFramesPending = maxFramesPending; |
} |
@@ -110,13 +102,13 @@ void FrameRateController::onTimerTick() |
DCHECK(m_active); |
// Check if we have too many frames in flight. |
- bool throttled = m_numFramesPending >= m_maxFramesPending; |
+ bool throttled = m_maxFramesPending && m_numFramesPending >= m_maxFramesPending; |
TRACE_COUNTER_ID1("cc", "ThrottledVSyncInterval", m_thread, throttled); |
if (m_client) |
m_client->vsyncTick(throttled); |
- if (m_swapBuffersCompleteSupported && !m_isTimeSourceThrottling && m_numFramesPending < m_maxFramesPending) |
+ if (m_swapBuffersCompleteSupported && !m_isTimeSourceThrottling && !throttled) |
postManualTick(); |
} |