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

Side by Side Diff: cc/trees/layer_tree_host_impl.cc

Issue 22900018: cc: Set the mapped memory reclaim limit for the renderer compositor on Android (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: feedback Created 7 years, 3 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
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/trees/layer_tree_host_impl.h" 5 #include "cc/trees/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/containers/hash_tables.h" 10 #include "base/containers/hash_tables.h"
(...skipping 1567 matching lines...) Expand 10 before | Expand all | Expand 10 after
1578 } 1578 }
1579 1579
1580 if (renderer_) { 1580 if (renderer_) {
1581 renderer_->SetVisible(visible_); 1581 renderer_->SetVisible(visible_);
1582 SetFullRootLayerDamage(); 1582 SetFullRootLayerDamage();
1583 } 1583 }
1584 } 1584 }
1585 1585
1586 void LayerTreeHostImpl::CreateAndSetTileManager( 1586 void LayerTreeHostImpl::CreateAndSetTileManager(
1587 ResourceProvider* resource_provider, 1587 ResourceProvider* resource_provider,
1588 bool using_map_image) { 1588 bool using_map_image,
1589 ContextProvider* context_provider) {
1589 DCHECK(settings_.impl_side_painting); 1590 DCHECK(settings_.impl_side_painting);
1590 DCHECK(resource_provider); 1591 DCHECK(resource_provider);
1591 tile_manager_ = TileManager::Create(this, 1592 tile_manager_ = TileManager::Create(this,
1592 resource_provider, 1593 resource_provider,
1593 settings_.num_raster_threads, 1594 settings_.num_raster_threads,
1594 rendering_stats_instrumentation_, 1595 rendering_stats_instrumentation_,
1595 using_map_image); 1596 using_map_image,
1597 context_provider);
1598
1596 UpdateTileManagerMemoryPolicy(ActualManagedMemoryPolicy()); 1599 UpdateTileManagerMemoryPolicy(ActualManagedMemoryPolicy());
1597 need_to_update_visible_tiles_before_draw_ = false; 1600 need_to_update_visible_tiles_before_draw_ = false;
1598 } 1601 }
1599 1602
1600 void LayerTreeHostImpl::EnforceZeroBudget(bool zero_budget) { 1603 void LayerTreeHostImpl::EnforceZeroBudget(bool zero_budget) {
1601 SetManagedMemoryPolicy(cached_managed_memory_policy_, zero_budget); 1604 SetManagedMemoryPolicy(cached_managed_memory_policy_, zero_budget);
1602 } 1605 }
1603 1606
1604 bool LayerTreeHostImpl::InitializeRenderer( 1607 bool LayerTreeHostImpl::InitializeRenderer(
1605 scoped_ptr<OutputSurface> output_surface) { 1608 scoped_ptr<OutputSurface> output_surface) {
(...skipping 23 matching lines...) Expand all
1629 1632
1630 bool skip_gl_renderer = false; 1633 bool skip_gl_renderer = false;
1631 CreateAndSetRenderer( 1634 CreateAndSetRenderer(
1632 output_surface.get(), resource_provider.get(), skip_gl_renderer); 1635 output_surface.get(), resource_provider.get(), skip_gl_renderer);
1633 1636
1634 if (!renderer_) 1637 if (!renderer_)
1635 return false; 1638 return false;
1636 1639
1637 if (settings_.impl_side_painting) { 1640 if (settings_.impl_side_painting) {
1638 CreateAndSetTileManager(resource_provider.get(), 1641 CreateAndSetTileManager(resource_provider.get(),
1639 GetRendererCapabilities().using_map_image); 1642 GetRendererCapabilities().using_map_image,
1643 output_surface->context_provider().get());
1640 } 1644 }
1641 1645
1642 // Setup BeginFrameEmulation if it's not supported natively 1646 // Setup BeginFrameEmulation if it's not supported natively
1643 if (!settings_.begin_frame_scheduling_enabled) { 1647 if (!settings_.begin_frame_scheduling_enabled) {
1644 const base::TimeDelta display_refresh_interval = 1648 const base::TimeDelta display_refresh_interval =
1645 base::TimeDelta::FromMicroseconds( 1649 base::TimeDelta::FromMicroseconds(
1646 base::Time::kMicrosecondsPerSecond / 1650 base::Time::kMicrosecondsPerSecond /
1647 settings_.refresh_rate); 1651 settings_.refresh_rate);
1648 1652
1649 output_surface->InitializeBeginFrameEmulation( 1653 output_surface->InitializeBeginFrameEmulation(
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
1741 tile_manager_.reset(); 1745 tile_manager_.reset();
1742 resource_provider_->InitializeSoftware(); 1746 resource_provider_->InitializeSoftware();
1743 1747
1744 bool skip_gl_renderer = true; 1748 bool skip_gl_renderer = true;
1745 CreateAndSetRenderer( 1749 CreateAndSetRenderer(
1746 output_surface_.get(), resource_provider_.get(), skip_gl_renderer); 1750 output_surface_.get(), resource_provider_.get(), skip_gl_renderer);
1747 DCHECK(renderer_); 1751 DCHECK(renderer_);
1748 1752
1749 EnforceZeroBudget(true); 1753 EnforceZeroBudget(true);
1750 CreateAndSetTileManager(resource_provider_.get(), 1754 CreateAndSetTileManager(resource_provider_.get(),
1751 GetRendererCapabilities().using_map_image); 1755 GetRendererCapabilities().using_map_image,
1756 NULL);
1757
1752 DCHECK(tile_manager_); 1758 DCHECK(tile_manager_);
1753 1759
1754 SetOffscreenContextProvider(NULL); 1760 SetOffscreenContextProvider(NULL);
1755 1761
1756 client_->SetNeedsCommitOnImplThread(); 1762 client_->SetNeedsCommitOnImplThread();
1757 } 1763 }
1758 1764
1759 void LayerTreeHostImpl::SetViewportSize(gfx::Size device_viewport_size) { 1765 void LayerTreeHostImpl::SetViewportSize(gfx::Size device_viewport_size) {
1760 if (device_viewport_size == device_viewport_size_) 1766 if (device_viewport_size == device_viewport_size_)
1761 return; 1767 return;
(...skipping 806 matching lines...) Expand 10 before | Expand all | Expand 10 after
2568 2574
2569 ResourceProvider::ResourceId LayerTreeHostImpl::ResourceIdForUIResource( 2575 ResourceProvider::ResourceId LayerTreeHostImpl::ResourceIdForUIResource(
2570 UIResourceId uid) const { 2576 UIResourceId uid) const {
2571 UIResourceMap::const_iterator iter = ui_resource_map_.find(uid); 2577 UIResourceMap::const_iterator iter = ui_resource_map_.find(uid);
2572 if (iter != ui_resource_map_.end()) 2578 if (iter != ui_resource_map_.end())
2573 return iter->second; 2579 return iter->second;
2574 return 0; 2580 return 0;
2575 } 2581 }
2576 2582
2577 } // namespace cc 2583 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698