Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(41)

Side by Side Diff: cc/layer_tree_host_impl.cc

Issue 12045086: cc: Throttle tile priority updates to once a frame. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/layer_tree_host_impl.h" 5 #include "cc/layer_tree_host_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/debug/trace_event.h" 10 #include "base/debug/trace_event.h"
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
187 187
188 void LayerTreeHostImpl::commitComplete() 188 void LayerTreeHostImpl::commitComplete()
189 { 189 {
190 TRACE_EVENT0("cc", "LayerTreeHostImpl::commitComplete"); 190 TRACE_EVENT0("cc", "LayerTreeHostImpl::commitComplete");
191 191
192 // Impl-side painting needs an update immediately post-commit to have the 192 // Impl-side painting needs an update immediately post-commit to have the
193 // opportunity to create tilings. Other paths can call updateDrawProperties 193 // opportunity to create tilings. Other paths can call updateDrawProperties
194 // more lazily when needed prior to drawing. 194 // more lazily when needed prior to drawing.
195 if (m_settings.implSidePainting) { 195 if (m_settings.implSidePainting) {
196 pendingTree()->set_needs_update_draw_properties(); 196 pendingTree()->set_needs_update_draw_properties();
197 pendingTree()->UpdateDrawProperties(); 197 pendingTree()->UpdateDrawProperties(LayerTreeImpl::UPDATE_PENDING_TREE);
198 } else { 198 } else {
199 activeTree()->set_needs_update_draw_properties(); 199 activeTree()->set_needs_update_draw_properties();
200 } 200 }
201 201
202 m_client->sendManagedMemoryStats(); 202 m_client->sendManagedMemoryStats();
203 } 203 }
204 204
205 bool LayerTreeHostImpl::canDraw() 205 bool LayerTreeHostImpl::canDraw()
206 { 206 {
207 // Note: If you are changing this function or any other function that might 207 // Note: If you are changing this function or any other function that might
(...skipping 436 matching lines...) Expand 10 before | Expand all | Expand 10 after
644 } 644 }
645 } 645 }
646 } 646 }
647 647
648 bool LayerTreeHostImpl::prepareToDraw(FrameData& frame) 648 bool LayerTreeHostImpl::prepareToDraw(FrameData& frame)
649 { 649 {
650 TRACE_EVENT0("cc", "LayerTreeHostImpl::prepareToDraw"); 650 TRACE_EVENT0("cc", "LayerTreeHostImpl::prepareToDraw");
651 651
652 if (m_topControlsManager) 652 if (m_topControlsManager)
653 m_topControlsManager->UpdateDrawPositions(); 653 m_topControlsManager->UpdateDrawPositions();
654 activeTree()->UpdateDrawProperties(); 654 activeTree()->UpdateDrawProperties(LayerTreeImpl::UPDATE_ACTIVE_TREE_FOR_DRA W);
655 655
656 frame.renderSurfaceLayerList = &activeTree()->RenderSurfaceLayerList(); 656 frame.renderSurfaceLayerList = &activeTree()->RenderSurfaceLayerList();
657 frame.renderPasses.clear(); 657 frame.renderPasses.clear();
658 frame.renderPassesById.clear(); 658 frame.renderPassesById.clear();
659 frame.willDrawLayers.clear(); 659 frame.willDrawLayers.clear();
660 660
661 if (!calculateRenderPasses(frame)) 661 if (!calculateRenderPasses(frame))
662 return false; 662 return false;
663 663
664 // If we return true, then we expect drawLayers() to be called before this f unction is called again. 664 // If we return true, then we expect drawLayers() to be called before this f unction is called again.
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after
928 DCHECK(!m_client->isInsideDraw()) << "Checking for completed uploads within a draw may trigger spurious redraws."; 928 DCHECK(!m_client->isInsideDraw()) << "Checking for completed uploads within a draw may trigger spurious redraws.";
929 if (m_tileManager) 929 if (m_tileManager)
930 m_tileManager->CheckForCompletedTileUploads(); 930 m_tileManager->CheckForCompletedTileUploads();
931 } 931 }
932 932
933 void LayerTreeHostImpl::activatePendingTreeIfNeeded() 933 void LayerTreeHostImpl::activatePendingTreeIfNeeded()
934 { 934 {
935 if (!pendingTree()) 935 if (!pendingTree())
936 return; 936 return;
937 937
938 pendingTree()->UpdateDrawProperties(); 938 pendingTree()->UpdateDrawProperties(LayerTreeImpl::UPDATE_PENDING_TREE);
939 939
940 // It's always fine to activate to an empty tree. Otherwise, only 940 // It's always fine to activate to an empty tree. Otherwise, only
941 // activate once all visible resources in pending tree are ready. 941 // activate once all visible resources in pending tree are ready.
942 if (activeTree()->RootLayer() && 942 if (activeTree()->RootLayer() &&
943 !pendingTree()->AreVisibleResourcesReady()) 943 !pendingTree()->AreVisibleResourcesReady())
944 return; 944 return;
945 945
946 activatePendingTree(); 946 activatePendingTree();
947 } 947 }
948 948
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
1151 activeTree()->set_needs_update_draw_properties(); 1151 activeTree()->set_needs_update_draw_properties();
1152 } 1152 }
1153 1153
1154 void LayerTreeHostImpl::setNeedsRedraw() 1154 void LayerTreeHostImpl::setNeedsRedraw()
1155 { 1155 {
1156 m_client->setNeedsRedrawOnImplThread(); 1156 m_client->setNeedsRedrawOnImplThread();
1157 } 1157 }
1158 1158
1159 bool LayerTreeHostImpl::ensureRenderSurfaceLayerList() 1159 bool LayerTreeHostImpl::ensureRenderSurfaceLayerList()
1160 { 1160 {
1161 activeTree()->UpdateDrawProperties(); 1161 activeTree()->UpdateDrawProperties(LayerTreeImpl::UPDATE_ACTIVE_TREE);
1162 return activeTree()->RenderSurfaceLayerList().size(); 1162 return activeTree()->RenderSurfaceLayerList().size();
1163 } 1163 }
1164 1164
1165 InputHandlerClient::ScrollStatus LayerTreeHostImpl::scrollBegin(gfx::Point viewp ortPoint, InputHandlerClient::ScrollInputType type) 1165 InputHandlerClient::ScrollStatus LayerTreeHostImpl::scrollBegin(gfx::Point viewp ortPoint, InputHandlerClient::ScrollInputType type)
1166 { 1166 {
1167 TRACE_EVENT0("cc", "LayerTreeHostImpl::scrollBegin"); 1167 TRACE_EVENT0("cc", "LayerTreeHostImpl::scrollBegin");
1168 1168
1169 if (m_topControlsManager) 1169 if (m_topControlsManager)
1170 m_topControlsManager->ScrollBegin(); 1170 m_topControlsManager->ScrollBegin();
1171 1171
(...skipping 544 matching lines...) Expand 10 before | Expand all | Expand 10 after
1716 LayerImpl* layer = getNonCompositedContentLayerRecursive(tree->RootLayer()); 1716 LayerImpl* layer = getNonCompositedContentLayerRecursive(tree->RootLayer());
1717 return layer ? layer->getPicture() : skia::RefPtr<SkPicture>(); 1717 return layer ? layer->getPicture() : skia::RefPtr<SkPicture>();
1718 } 1718 }
1719 1719
1720 void LayerTreeHostImpl::savePaintTime(const base::TimeDelta& totalPaintTime) 1720 void LayerTreeHostImpl::savePaintTime(const base::TimeDelta& totalPaintTime)
1721 { 1721 {
1722 m_paintTimeCounter->SavePaintTime(totalPaintTime); 1722 m_paintTimeCounter->SavePaintTime(totalPaintTime);
1723 } 1723 }
1724 1724
1725 } // namespace cc 1725 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698