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

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, 10 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 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 186
187 void LayerTreeHostImpl::commitComplete() 187 void LayerTreeHostImpl::commitComplete()
188 { 188 {
189 TRACE_EVENT0("cc", "LayerTreeHostImpl::commitComplete"); 189 TRACE_EVENT0("cc", "LayerTreeHostImpl::commitComplete");
190 190
191 // Impl-side painting needs an update immediately post-commit to have the 191 // Impl-side painting needs an update immediately post-commit to have the
192 // opportunity to create tilings. Other paths can call updateDrawProperties 192 // opportunity to create tilings. Other paths can call updateDrawProperties
193 // more lazily when needed prior to drawing. 193 // more lazily when needed prior to drawing.
194 if (m_settings.implSidePainting) { 194 if (m_settings.implSidePainting) {
195 pendingTree()->set_needs_update_draw_properties(); 195 pendingTree()->set_needs_update_draw_properties();
196 pendingTree()->UpdateDrawProperties(); 196 pendingTree()->UpdateDrawProperties(LayerTreeImpl::UPDATE_PENDING_TREE);
epenner 2013/01/25 20:29:09 Wouldn't it be easier to just call pendingTree()->
197 } else { 197 } else {
198 activeTree()->set_needs_update_draw_properties(); 198 activeTree()->set_needs_update_draw_properties();
199 } 199 }
200 200
201 m_client->sendManagedMemoryStats(); 201 m_client->sendManagedMemoryStats();
202 } 202 }
203 203
204 bool LayerTreeHostImpl::canDraw() 204 bool LayerTreeHostImpl::canDraw()
205 { 205 {
206 // Note: If you are changing this function or any other function that might 206 // 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
643 } 643 }
644 } 644 }
645 } 645 }
646 646
647 bool LayerTreeHostImpl::prepareToDraw(FrameData& frame) 647 bool LayerTreeHostImpl::prepareToDraw(FrameData& frame)
648 { 648 {
649 TRACE_EVENT0("cc", "LayerTreeHostImpl::prepareToDraw"); 649 TRACE_EVENT0("cc", "LayerTreeHostImpl::prepareToDraw");
650 650
651 if (m_topControlsManager) 651 if (m_topControlsManager)
652 m_topControlsManager->UpdateDrawPositions(); 652 m_topControlsManager->UpdateDrawPositions();
653 activeTree()->UpdateDrawProperties(); 653 activeTree()->UpdateDrawProperties(LayerTreeImpl::UPDATE_ACTIVE_TREE_FOR_DRA W);
654 654
655 frame.renderSurfaceLayerList = &activeTree()->RenderSurfaceLayerList(); 655 frame.renderSurfaceLayerList = &activeTree()->RenderSurfaceLayerList();
656 frame.renderPasses.clear(); 656 frame.renderPasses.clear();
657 frame.renderPassesById.clear(); 657 frame.renderPassesById.clear();
658 frame.willDrawLayers.clear(); 658 frame.willDrawLayers.clear();
659 659
660 if (!calculateRenderPasses(frame)) 660 if (!calculateRenderPasses(frame))
661 return false; 661 return false;
662 662
663 // If we return true, then we expect drawLayers() to be called before this f unction is called again. 663 // 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
927 DCHECK(!m_client->isInsideDraw()) << "Checking for completed uploads within a draw may trigger spurious redraws."; 927 DCHECK(!m_client->isInsideDraw()) << "Checking for completed uploads within a draw may trigger spurious redraws.";
928 if (m_tileManager) 928 if (m_tileManager)
929 m_tileManager->CheckForCompletedTileUploads(); 929 m_tileManager->CheckForCompletedTileUploads();
930 } 930 }
931 931
932 void LayerTreeHostImpl::activatePendingTreeIfNeeded() 932 void LayerTreeHostImpl::activatePendingTreeIfNeeded()
933 { 933 {
934 if (!pendingTree()) 934 if (!pendingTree())
935 return; 935 return;
936 936
937 pendingTree()->UpdateDrawProperties(); 937 pendingTree()->UpdateDrawProperties(LayerTreeImpl::UPDATE_PENDING_TREE);
938 938
939 // It's always fine to activate to an empty tree. Otherwise, only 939 // It's always fine to activate to an empty tree. Otherwise, only
940 // activate once all visible resources in pending tree are ready. 940 // activate once all visible resources in pending tree are ready.
941 if (activeTree()->RootLayer() && 941 if (activeTree()->RootLayer() &&
942 !pendingTree()->AreVisibleResourcesReady()) 942 !pendingTree()->AreVisibleResourcesReady())
943 return; 943 return;
944 944
945 activatePendingTree(); 945 activatePendingTree();
946 } 946 }
947 947
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
1150 activeTree()->set_needs_update_draw_properties(); 1150 activeTree()->set_needs_update_draw_properties();
1151 } 1151 }
1152 1152
1153 void LayerTreeHostImpl::setNeedsRedraw() 1153 void LayerTreeHostImpl::setNeedsRedraw()
1154 { 1154 {
1155 m_client->setNeedsRedrawOnImplThread(); 1155 m_client->setNeedsRedrawOnImplThread();
1156 } 1156 }
1157 1157
1158 bool LayerTreeHostImpl::ensureRenderSurfaceLayerList() 1158 bool LayerTreeHostImpl::ensureRenderSurfaceLayerList()
1159 { 1159 {
1160 activeTree()->UpdateDrawProperties(); 1160 activeTree()->UpdateDrawProperties(LayerTreeImpl::UPDATE_ACTIVE_TREE);
1161 return activeTree()->RenderSurfaceLayerList().size(); 1161 return activeTree()->RenderSurfaceLayerList().size();
1162 } 1162 }
1163 1163
1164 InputHandlerClient::ScrollStatus LayerTreeHostImpl::scrollBegin(gfx::Point viewp ortPoint, InputHandlerClient::ScrollInputType type) 1164 InputHandlerClient::ScrollStatus LayerTreeHostImpl::scrollBegin(gfx::Point viewp ortPoint, InputHandlerClient::ScrollInputType type)
1165 { 1165 {
1166 TRACE_EVENT0("cc", "LayerTreeHostImpl::scrollBegin"); 1166 TRACE_EVENT0("cc", "LayerTreeHostImpl::scrollBegin");
1167 1167
1168 if (m_topControlsManager) 1168 if (m_topControlsManager)
1169 m_topControlsManager->ScrollBegin(); 1169 m_topControlsManager->ScrollBegin();
1170 1170
(...skipping 538 matching lines...) Expand 10 before | Expand all | Expand 10 after
1709 LayerImpl* layer = getNonCompositedContentLayerRecursive(tree->RootLayer()); 1709 LayerImpl* layer = getNonCompositedContentLayerRecursive(tree->RootLayer());
1710 return layer ? layer->getPicture() : skia::RefPtr<SkPicture>(); 1710 return layer ? layer->getPicture() : skia::RefPtr<SkPicture>();
1711 } 1711 }
1712 1712
1713 void LayerTreeHostImpl::savePaintTime(const base::TimeDelta& totalPaintTime) 1713 void LayerTreeHostImpl::savePaintTime(const base::TimeDelta& totalPaintTime)
1714 { 1714 {
1715 m_paintTimeCounter->SavePaintTime(totalPaintTime); 1715 m_paintTimeCounter->SavePaintTime(totalPaintTime);
1716 } 1716 }
1717 1717
1718 } // namespace cc 1718 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698