Index: cc/CCThreadProxy.cpp |
diff --git a/cc/CCThreadProxy.cpp b/cc/CCThreadProxy.cpp |
index ec86bef955c7c1ec6b654e286fcd1ba72c91104c..1ebe22dd70d6d7bb8eff0c276bdae32bbf43d6df 100644 |
--- a/cc/CCThreadProxy.cpp |
+++ b/cc/CCThreadProxy.cpp |
@@ -593,9 +593,8 @@ void CCThreadProxy::beginFrameCompleteOnImplThread(CCCompletionEvent* completion |
setNeedsCommitOnImplThread(); |
} |
- bool hasResourceUpdates = queue->hasMoreUpdates(); |
- if (hasResourceUpdates) |
- m_currentTextureUpdateControllerOnImplThread = CCTextureUpdateController::create(this, CCProxy::implThread(), queue, m_layerTreeHostImpl->resourceProvider(), m_layerTreeHostImpl->renderer()->textureCopier(), m_layerTreeHostImpl->renderer()->textureUploader()); |
+ bool hasResourceUpdates = !!queue->fullUploadSize(); |
+ m_currentTextureUpdateControllerOnImplThread = CCTextureUpdateController::create(this, CCProxy::implThread(), queue, m_layerTreeHostImpl->resourceProvider(), m_layerTreeHostImpl->renderer()->textureCopier(), m_layerTreeHostImpl->renderer()->textureUploader()); |
m_commitCompletionEventOnImplThread = completion; |
m_schedulerOnImplThread->beginFrameComplete(hasResourceUpdates); |
@@ -623,7 +622,10 @@ void CCThreadProxy::scheduledActionCommit() |
TRACE_EVENT0("cc", "CCThreadProxy::scheduledActionCommit"); |
ASSERT(isImplThread()); |
ASSERT(m_commitCompletionEventOnImplThread); |
+ ASSERT(m_currentTextureUpdateControllerOnImplThread); |
+ // Complete all remaining texture updates. |
+ m_currentTextureUpdateControllerOnImplThread->updateAllTexturesNow(); |
m_currentTextureUpdateControllerOnImplThread.clear(); |
m_layerTreeHostImpl->beginCommit(); |