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

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: Move max_transfer_buffer_usage_bytes to OutputSurface::Capabilities 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 1588 matching lines...) Expand 10 before | Expand all | Expand 10 after
1599 } 1599 }
1600 1600
1601 if (renderer_) { 1601 if (renderer_) {
1602 renderer_->SetVisible(visible_); 1602 renderer_->SetVisible(visible_);
1603 SetFullRootLayerDamage(); 1603 SetFullRootLayerDamage();
1604 } 1604 }
1605 } 1605 }
1606 1606
1607 void LayerTreeHostImpl::CreateAndSetTileManager( 1607 void LayerTreeHostImpl::CreateAndSetTileManager(
1608 ResourceProvider* resource_provider, 1608 ResourceProvider* resource_provider,
1609 bool using_map_image) { 1609 bool using_map_image,
1610 size_t max_transfer_buffer_usage_bytes) {
1610 DCHECK(settings_.impl_side_painting); 1611 DCHECK(settings_.impl_side_painting);
1611 DCHECK(resource_provider); 1612 DCHECK(resource_provider);
1612 tile_manager_ = TileManager::Create(this, 1613 tile_manager_ = TileManager::Create(
1613 resource_provider, 1614 this,
1614 settings_.num_raster_threads, 1615 resource_provider,
1615 rendering_stats_instrumentation_, 1616 settings_.num_raster_threads,
1616 using_map_image); 1617 rendering_stats_instrumentation_,
1618 using_map_image,
1619 max_transfer_buffer_usage_bytes);
1620
1617 UpdateTileManagerMemoryPolicy(ActualManagedMemoryPolicy()); 1621 UpdateTileManagerMemoryPolicy(ActualManagedMemoryPolicy());
1618 need_to_update_visible_tiles_before_draw_ = false; 1622 need_to_update_visible_tiles_before_draw_ = false;
1619 } 1623 }
1620 1624
1621 void LayerTreeHostImpl::EnforceZeroBudget(bool zero_budget) { 1625 void LayerTreeHostImpl::EnforceZeroBudget(bool zero_budget) {
1622 SetManagedMemoryPolicy(cached_managed_memory_policy_, zero_budget); 1626 SetManagedMemoryPolicy(cached_managed_memory_policy_, zero_budget);
1623 } 1627 }
1624 1628
1625 bool LayerTreeHostImpl::InitializeRenderer( 1629 bool LayerTreeHostImpl::InitializeRenderer(
1626 scoped_ptr<OutputSurface> output_surface) { 1630 scoped_ptr<OutputSurface> output_surface) {
(...skipping 22 matching lines...) Expand all
1649 EnforceZeroBudget(true); 1653 EnforceZeroBudget(true);
1650 1654
1651 bool skip_gl_renderer = false; 1655 bool skip_gl_renderer = false;
1652 CreateAndSetRenderer( 1656 CreateAndSetRenderer(
1653 output_surface.get(), resource_provider.get(), skip_gl_renderer); 1657 output_surface.get(), resource_provider.get(), skip_gl_renderer);
1654 1658
1655 if (!renderer_) 1659 if (!renderer_)
1656 return false; 1660 return false;
1657 1661
1658 if (settings_.impl_side_painting) { 1662 if (settings_.impl_side_painting) {
1659 CreateAndSetTileManager(resource_provider.get(), 1663 CreateAndSetTileManager(
1660 GetRendererCapabilities().using_map_image); 1664 resource_provider.get(),
1665 GetRendererCapabilities().using_map_image,
1666 output_surface->capabilities().max_transfer_buffer_usage_bytes);
1661 } 1667 }
1662 1668
1663 // Setup BeginFrameEmulation if it's not supported natively 1669 // Setup BeginFrameEmulation if it's not supported natively
1664 if (!settings_.begin_frame_scheduling_enabled) { 1670 if (!settings_.begin_frame_scheduling_enabled) {
1665 const base::TimeDelta display_refresh_interval = 1671 const base::TimeDelta display_refresh_interval =
1666 base::TimeDelta::FromMicroseconds( 1672 base::TimeDelta::FromMicroseconds(
1667 base::Time::kMicrosecondsPerSecond / 1673 base::Time::kMicrosecondsPerSecond /
1668 settings_.refresh_rate); 1674 settings_.refresh_rate);
1669 1675
1670 output_surface->InitializeBeginFrameEmulation( 1676 output_surface->InitializeBeginFrameEmulation(
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
1728 tile_manager_.reset(); 1734 tile_manager_.reset();
1729 resource_provider_->InitializeSoftware(); 1735 resource_provider_->InitializeSoftware();
1730 1736
1731 bool skip_gl_renderer = true; 1737 bool skip_gl_renderer = true;
1732 CreateAndSetRenderer( 1738 CreateAndSetRenderer(
1733 output_surface_.get(), resource_provider_.get(), skip_gl_renderer); 1739 output_surface_.get(), resource_provider_.get(), skip_gl_renderer);
1734 DCHECK(renderer_); 1740 DCHECK(renderer_);
1735 1741
1736 EnforceZeroBudget(true); 1742 EnforceZeroBudget(true);
1737 CreateAndSetTileManager(resource_provider_.get(), 1743 CreateAndSetTileManager(resource_provider_.get(),
1738 GetRendererCapabilities().using_map_image); 1744 GetRendererCapabilities().using_map_image,
1745 OutputSurface::kDefaultMaxTransferBufferUsageBytes);
1739 DCHECK(tile_manager_); 1746 DCHECK(tile_manager_);
1740 1747
1741 bool success = true; 1748 bool success = true;
1742 client_->DidTryInitializeRendererOnImplThread( 1749 client_->DidTryInitializeRendererOnImplThread(
1743 success, scoped_refptr<ContextProvider>()); 1750 success, scoped_refptr<ContextProvider>());
1744 client_->SetNeedsCommitOnImplThread(); 1751 client_->SetNeedsCommitOnImplThread();
1745 } 1752 }
1746 1753
1747 void LayerTreeHostImpl::SetViewportSize(gfx::Size device_viewport_size) { 1754 void LayerTreeHostImpl::SetViewportSize(gfx::Size device_viewport_size) {
1748 if (device_viewport_size == device_viewport_size_) 1755 if (device_viewport_size == device_viewport_size_)
(...skipping 786 matching lines...) Expand 10 before | Expand all | Expand 10 after
2535 2542
2536 ResourceProvider::ResourceId LayerTreeHostImpl::ResourceIdForUIResource( 2543 ResourceProvider::ResourceId LayerTreeHostImpl::ResourceIdForUIResource(
2537 UIResourceId uid) const { 2544 UIResourceId uid) const {
2538 UIResourceMap::const_iterator iter = ui_resource_map_.find(uid); 2545 UIResourceMap::const_iterator iter = ui_resource_map_.find(uid);
2539 if (iter != ui_resource_map_.end()) 2546 if (iter != ui_resource_map_.end())
2540 return iter->second; 2547 return iter->second;
2541 return 0; 2548 return 0;
2542 } 2549 }
2543 2550
2544 } // namespace cc 2551 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698