Index: cc/layer_tree_host_impl.cc |
diff --git a/cc/layer_tree_host_impl.cc b/cc/layer_tree_host_impl.cc |
index e357999dcb264deb268a5c190e8f2662127359c6..06db701f3a9279b63d86d5ec7fdfe06c9e84883a 100644 |
--- a/cc/layer_tree_host_impl.cc |
+++ b/cc/layer_tree_host_impl.cc |
@@ -972,11 +972,19 @@ void LayerTreeHostImpl::activatePendingTreeIfNeeded() |
// activate once all visible resources in pending tree are ready |
// or tile manager has no work scheduled for pending tree. |
if (activeTree()->RootLayer() && |
- !pendingTree()->AreVisibleResourcesReady() && |
- m_tileManager->HasPendingWorkScheduled(PENDING_TREE)) { |
- TRACE_EVENT_ASYNC_STEP0("cc", |
- "PendingTree", m_pendingTree.get(), "waiting"); |
- return; |
+ !pendingTree()->AreVisibleResourcesReady()) { |
+ // In smoothness takes priority mode, the pending tree's priorities are |
+ // ignored, so the tile manager may not have work for it even though it |
+ // is simultaneously not ready to be activated. |
+ if (m_tileManager->GlobalState().tree_priority == |
+ SMOOTHNESS_TAKES_PRIORITY || |
+ m_tileManager->HasPendingWorkScheduled(PENDING_TREE)) { |
+ TRACE_EVENT_ASYNC_STEP0("cc", |
+ "PendingTree", |
+ m_pendingTree.get(), |
+ "waiting"); |
+ return; |
+ } |
} |
activatePendingTree(); |