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 |