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

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

Issue 151003010: Merge 250273 "cc: Prevent usage of rasterize on-demand with dele..." (Closed) Base URL: svn://svn.chromium.org/chrome/branches/1833/src/
Patch Set: Created 6 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
« no previous file with comments | « cc/trees/layer_tree_host_impl.h ('k') | cc/trees/layer_tree_host_impl_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 #include <limits> 8 #include <limits>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 1726 matching lines...) Expand 10 before | Expand all | Expand 10 after
1737 // trees need another update to generate new ones. 1737 // trees need another update to generate new ones.
1738 active_tree_->set_needs_update_draw_properties(); 1738 active_tree_->set_needs_update_draw_properties();
1739 if (pending_tree_) 1739 if (pending_tree_)
1740 pending_tree_->set_needs_update_draw_properties(); 1740 pending_tree_->set_needs_update_draw_properties();
1741 } 1741 }
1742 } 1742 }
1743 1743
1744 void LayerTreeHostImpl::CreateAndSetTileManager( 1744 void LayerTreeHostImpl::CreateAndSetTileManager(
1745 ResourceProvider* resource_provider, 1745 ResourceProvider* resource_provider,
1746 ContextProvider* context_provider, 1746 ContextProvider* context_provider,
1747 bool using_map_image) { 1747 bool using_map_image,
1748 bool allow_rasterize_on_demand) {
1748 DCHECK(settings_.impl_side_painting); 1749 DCHECK(settings_.impl_side_painting);
1749 DCHECK(resource_provider); 1750 DCHECK(resource_provider);
1750 tile_manager_ = 1751 tile_manager_ =
1751 TileManager::Create(this, 1752 TileManager::Create(this,
1752 resource_provider, 1753 resource_provider,
1753 context_provider, 1754 context_provider,
1754 rendering_stats_instrumentation_, 1755 rendering_stats_instrumentation_,
1755 using_map_image, 1756 using_map_image,
1757 allow_rasterize_on_demand,
1756 GetMaxTransferBufferUsageBytes(context_provider), 1758 GetMaxTransferBufferUsageBytes(context_provider),
1757 GetMaxRasterTasksUsageBytes(context_provider), 1759 GetMaxRasterTasksUsageBytes(context_provider),
1758 GetMapImageTextureTarget(context_provider)); 1760 GetMapImageTextureTarget(context_provider));
1759 1761
1760 UpdateTileManagerMemoryPolicy(ActualManagedMemoryPolicy()); 1762 UpdateTileManagerMemoryPolicy(ActualManagedMemoryPolicy());
1761 need_to_update_visible_tiles_before_draw_ = false; 1763 need_to_update_visible_tiles_before_draw_ = false;
1762 } 1764 }
1763 1765
1764 void LayerTreeHostImpl::EnforceZeroBudget(bool zero_budget) { 1766 void LayerTreeHostImpl::EnforceZeroBudget(bool zero_budget) {
1765 SetManagedMemoryPolicy(cached_managed_memory_policy_, zero_budget); 1767 SetManagedMemoryPolicy(cached_managed_memory_policy_, zero_budget);
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1798 EnforceZeroBudget(true); 1800 EnforceZeroBudget(true);
1799 1801
1800 bool skip_gl_renderer = false; 1802 bool skip_gl_renderer = false;
1801 CreateAndSetRenderer( 1803 CreateAndSetRenderer(
1802 output_surface.get(), resource_provider.get(), skip_gl_renderer); 1804 output_surface.get(), resource_provider.get(), skip_gl_renderer);
1803 1805
1804 if (!renderer_) 1806 if (!renderer_)
1805 return false; 1807 return false;
1806 1808
1807 if (settings_.impl_side_painting) { 1809 if (settings_.impl_side_painting) {
1808 CreateAndSetTileManager(resource_provider.get(), 1810 CreateAndSetTileManager(
1809 output_surface->context_provider().get(), 1811 resource_provider.get(),
1810 GetRendererCapabilities().using_map_image); 1812 output_surface->context_provider().get(),
1813 GetRendererCapabilities().using_map_image,
1814 GetRendererCapabilities().allow_rasterize_on_demand);
1811 } 1815 }
1812 1816
1813 // Setup BeginImplFrameEmulation if it's not supported natively 1817 // Setup BeginImplFrameEmulation if it's not supported natively
1814 if (!settings_.begin_impl_frame_scheduling_enabled) { 1818 if (!settings_.begin_impl_frame_scheduling_enabled) {
1815 const base::TimeDelta display_refresh_interval = 1819 const base::TimeDelta display_refresh_interval =
1816 base::TimeDelta::FromMicroseconds( 1820 base::TimeDelta::FromMicroseconds(
1817 base::Time::kMicrosecondsPerSecond / 1821 base::Time::kMicrosecondsPerSecond /
1818 settings_.refresh_rate); 1822 settings_.refresh_rate);
1819 1823
1820 output_surface->InitializeBeginImplFrameEmulation( 1824 output_surface->InitializeBeginImplFrameEmulation(
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
1905 resource_provider_->InitializeSoftware(); 1909 resource_provider_->InitializeSoftware();
1906 1910
1907 bool skip_gl_renderer = true; 1911 bool skip_gl_renderer = true;
1908 CreateAndSetRenderer( 1912 CreateAndSetRenderer(
1909 output_surface_.get(), resource_provider_.get(), skip_gl_renderer); 1913 output_surface_.get(), resource_provider_.get(), skip_gl_renderer);
1910 DCHECK(renderer_); 1914 DCHECK(renderer_);
1911 1915
1912 EnforceZeroBudget(true); 1916 EnforceZeroBudget(true);
1913 CreateAndSetTileManager(resource_provider_.get(), 1917 CreateAndSetTileManager(resource_provider_.get(),
1914 NULL, 1918 NULL,
1915 GetRendererCapabilities().using_map_image); 1919 GetRendererCapabilities().using_map_image,
1920 GetRendererCapabilities().allow_rasterize_on_demand);
1916 DCHECK(tile_manager_); 1921 DCHECK(tile_manager_);
1917 1922
1918 SetOffscreenContextProvider(NULL); 1923 SetOffscreenContextProvider(NULL);
1919 1924
1920 client_->SetNeedsCommitOnImplThread(); 1925 client_->SetNeedsCommitOnImplThread();
1921 } 1926 }
1922 1927
1923 void LayerTreeHostImpl::SetViewportSize(const gfx::Size& device_viewport_size) { 1928 void LayerTreeHostImpl::SetViewportSize(const gfx::Size& device_viewport_size) {
1924 if (device_viewport_size == device_viewport_size_) 1929 if (device_viewport_size == device_viewport_size_)
1925 return; 1930 return;
(...skipping 1061 matching lines...) Expand 10 before | Expand all | Expand 10 after
2987 swap_promise_monitor_.erase(monitor); 2992 swap_promise_monitor_.erase(monitor);
2988 } 2993 }
2989 2994
2990 void LayerTreeHostImpl::NotifySwapPromiseMonitorsOfSetNeedsRedraw() { 2995 void LayerTreeHostImpl::NotifySwapPromiseMonitorsOfSetNeedsRedraw() {
2991 std::set<SwapPromiseMonitor*>::iterator it = swap_promise_monitor_.begin(); 2996 std::set<SwapPromiseMonitor*>::iterator it = swap_promise_monitor_.begin();
2992 for (; it != swap_promise_monitor_.end(); it++) 2997 for (; it != swap_promise_monitor_.end(); it++)
2993 (*it)->OnSetNeedsRedrawOnImpl(); 2998 (*it)->OnSetNeedsRedrawOnImpl();
2994 } 2999 }
2995 3000
2996 } // namespace cc 3001 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_impl.h ('k') | cc/trees/layer_tree_host_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698