| OLD | NEW |
| 1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "cc/scheduler_state_machine.h" | 5 #include "cc/scheduler_state_machine.h" |
| 6 | 6 |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "base/stringprintf.h" | 8 #include "base/stringprintf.h" |
| 9 #include "cc/settings.h" | |
| 10 | 9 |
| 11 namespace cc { | 10 namespace cc { |
| 12 | 11 |
| 13 SchedulerStateMachine::SchedulerStateMachine() | 12 SchedulerStateMachine::SchedulerStateMachine() |
| 14 : m_commitState(COMMIT_STATE_IDLE) | 13 : m_commitState(COMMIT_STATE_IDLE) |
| 15 , m_currentFrameNumber(0) | 14 , m_currentFrameNumber(0) |
| 16 , m_lastFrameNumberWhereDrawWasCalled(-1) | 15 , m_lastFrameNumberWhereDrawWasCalled(-1) |
| 17 , m_consecutiveFailedDraws(0) | 16 , m_consecutiveFailedDraws(0) |
| 18 , m_maximumNumberOfFailedDrawsBeforeDrawIsForced(3) | 17 , m_maximumNumberOfFailedDrawsBeforeDrawIsForced(3) |
| 19 , m_needsRedraw(false) | 18 , m_needsRedraw(false) |
| 20 , m_needsForcedRedraw(false) | 19 , m_needsForcedRedraw(false) |
| 21 , m_needsForcedRedrawAfterNextCommit(false) | 20 , m_needsForcedRedrawAfterNextCommit(false) |
| 22 , m_needsCommit(false) | 21 , m_needsCommit(false) |
| 23 , m_needsForcedCommit(false) | 22 , m_needsForcedCommit(false) |
| 24 , m_mainThreadNeedsLayerTextures(false) | 23 , m_mainThreadNeedsLayerTextures(false) |
| 25 , m_insideVSync(false) | 24 , m_insideVSync(false) |
| 26 , m_visible(false) | 25 , m_visible(false) |
| 27 , m_canBeginFrame(false) | 26 , m_canBeginFrame(false) |
| 28 , m_canDraw(false) | 27 , m_canDraw(false) |
| 29 , m_drawIfPossibleFailed(false) | 28 , m_drawIfPossibleFailed(false) |
| 30 , m_textureState(LAYER_TEXTURE_STATE_UNLOCKED) | 29 , m_textureState(LAYER_TEXTURE_STATE_UNLOCKED) |
| 31 , m_contextState(CONTEXT_ACTIVE) | 30 , m_contextState(CONTEXT_ACTIVE) |
| 31 , m_settingsJankInsteadOfCheckerboard(false) |
| 32 { | 32 { |
| 33 } | 33 } |
| 34 | 34 |
| 35 std::string SchedulerStateMachine::toString() | 35 std::string SchedulerStateMachine::toString() |
| 36 { | 36 { |
| 37 std::string str; | 37 std::string str; |
| 38 base::StringAppendF(&str, "m_commitState = %d; ", m_commitState); | 38 base::StringAppendF(&str, "m_commitState = %d; ", m_commitState); |
| 39 base::StringAppendF(&str, "m_currentFrameNumber = %d; ", m_currentFrameNumbe
r); | 39 base::StringAppendF(&str, "m_currentFrameNumber = %d; ", m_currentFrameNumbe
r); |
| 40 base::StringAppendF(&str, "m_lastFrameNumberWhereDrawWasCalled = %d; ", m_la
stFrameNumberWhereDrawWasCalled); | 40 base::StringAppendF(&str, "m_lastFrameNumberWhereDrawWasCalled = %d; ", m_la
stFrameNumberWhereDrawWasCalled); |
| 41 base::StringAppendF(&str, "m_consecutiveFailedDraws = %d; ", m_consecutiveFa
iledDraws); | 41 base::StringAppendF(&str, "m_consecutiveFailedDraws = %d; ", m_consecutiveFa
iledDraws); |
| (...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 255 m_needsForcedRedraw = true; | 255 m_needsForcedRedraw = true; |
| 256 } | 256 } |
| 257 | 257 |
| 258 void SchedulerStateMachine::didDrawIfPossibleCompleted(bool success) | 258 void SchedulerStateMachine::didDrawIfPossibleCompleted(bool success) |
| 259 { | 259 { |
| 260 m_drawIfPossibleFailed = !success; | 260 m_drawIfPossibleFailed = !success; |
| 261 if (m_drawIfPossibleFailed) { | 261 if (m_drawIfPossibleFailed) { |
| 262 m_needsRedraw = true; | 262 m_needsRedraw = true; |
| 263 m_needsCommit = true; | 263 m_needsCommit = true; |
| 264 m_consecutiveFailedDraws++; | 264 m_consecutiveFailedDraws++; |
| 265 if (!Settings::jankInsteadOfCheckerboard() && m_consecutiveFailedDraws >
= m_maximumNumberOfFailedDrawsBeforeDrawIsForced) { | 265 if (!m_settingsJankInsteadOfCheckerboard && m_consecutiveFailedDraws >=
m_maximumNumberOfFailedDrawsBeforeDrawIsForced) { |
| 266 m_consecutiveFailedDraws = 0; | 266 m_consecutiveFailedDraws = 0; |
| 267 // We need to force a draw, but it doesn't make sense to do this unt
il | 267 // We need to force a draw, but it doesn't make sense to do this unt
il |
| 268 // we've committed and have new textures. | 268 // we've committed and have new textures. |
| 269 m_needsForcedRedrawAfterNextCommit = true; | 269 m_needsForcedRedrawAfterNextCommit = true; |
| 270 } | 270 } |
| 271 } else | 271 } else |
| 272 m_consecutiveFailedDraws = 0; | 272 m_consecutiveFailedDraws = 0; |
| 273 } | 273 } |
| 274 | 274 |
| 275 void SchedulerStateMachine::setNeedsCommit() | 275 void SchedulerStateMachine::setNeedsCommit() |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 308 m_contextState = CONTEXT_ACTIVE; | 308 m_contextState = CONTEXT_ACTIVE; |
| 309 setNeedsCommit(); | 309 setNeedsCommit(); |
| 310 } | 310 } |
| 311 | 311 |
| 312 void SchedulerStateMachine::setMaximumNumberOfFailedDrawsBeforeDrawIsForced(int
numDraws) | 312 void SchedulerStateMachine::setMaximumNumberOfFailedDrawsBeforeDrawIsForced(int
numDraws) |
| 313 { | 313 { |
| 314 m_maximumNumberOfFailedDrawsBeforeDrawIsForced = numDraws; | 314 m_maximumNumberOfFailedDrawsBeforeDrawIsForced = numDraws; |
| 315 } | 315 } |
| 316 | 316 |
| 317 } // namespace cc | 317 } // namespace cc |
| OLD | NEW |