Index: cc/CCThreadProxy.cpp |
diff --git a/cc/CCThreadProxy.cpp b/cc/CCThreadProxy.cpp |
index ec86bef955c7c1ec6b654e286fcd1ba72c91104c..cf425e9880d6495109ead2fdcd56d0ca3efb82ff 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); |
@@ -615,7 +614,8 @@ void CCThreadProxy::scheduledActionUpdateMoreResources(double monotonicTimeLimit |
{ |
TRACE_EVENT0("cc", "CCThreadProxy::scheduledActionUpdateMoreResources"); |
ASSERT(m_currentTextureUpdateControllerOnImplThread); |
- m_currentTextureUpdateControllerOnImplThread->updateMoreTextures(monotonicTimeLimit); |
+ m_currentTextureUpdateControllerOnImplThread->performMoreUpdates( |
+ monotonicTimeLimit); |
} |
void CCThreadProxy::scheduledActionCommit() |
@@ -623,7 +623,10 @@ void CCThreadProxy::scheduledActionCommit() |
TRACE_EVENT0("cc", "CCThreadProxy::scheduledActionCommit"); |
ASSERT(isImplThread()); |
ASSERT(m_commitCompletionEventOnImplThread); |
+ ASSERT(m_currentTextureUpdateControllerOnImplThread); |
+ // Complete all remaining texture updates. |
+ m_currentTextureUpdateControllerOnImplThread->finalize(); |
m_currentTextureUpdateControllerOnImplThread.clear(); |
m_layerTreeHostImpl->beginCommit(); |
@@ -761,7 +764,7 @@ CCScheduledActionDrawAndSwapResult CCThreadProxy::scheduledActionDrawAndSwapForc |
return scheduledActionDrawAndSwapInternal(true); |
} |
-void CCThreadProxy::updateTexturesCompleted() |
+void CCThreadProxy::readyToFinalizeTextureUpdates() |
{ |
ASSERT(isImplThread()); |
m_schedulerOnImplThread->updateResourcesComplete(); |