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

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

Issue 287643004: Re-land: cc: Examine layers to determine if we're ready to activate. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 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/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 1823 matching lines...) Expand 10 before | Expand all | Expand 10 after
1834 active_tree_->set_needs_update_draw_properties(); 1834 active_tree_->set_needs_update_draw_properties();
1835 if (pending_tree_) 1835 if (pending_tree_)
1836 pending_tree_->set_needs_update_draw_properties(); 1836 pending_tree_->set_needs_update_draw_properties();
1837 client_->UpdateRendererCapabilitiesOnImplThread(); 1837 client_->UpdateRendererCapabilitiesOnImplThread();
1838 } 1838 }
1839 1839
1840 void LayerTreeHostImpl::CreateAndSetTileManager( 1840 void LayerTreeHostImpl::CreateAndSetTileManager(
1841 ResourceProvider* resource_provider, 1841 ResourceProvider* resource_provider,
1842 ContextProvider* context_provider, 1842 ContextProvider* context_provider,
1843 bool use_zero_copy, 1843 bool use_zero_copy,
1844 bool use_one_copy, 1844 bool use_one_copy) {
1845 bool allow_rasterize_on_demand) {
1846 DCHECK(settings_.impl_side_painting); 1845 DCHECK(settings_.impl_side_painting);
1847 DCHECK(resource_provider); 1846 DCHECK(resource_provider);
1848 DCHECK(proxy_->ImplThreadTaskRunner()); 1847 DCHECK(proxy_->ImplThreadTaskRunner());
1849 1848
1850 transfer_buffer_memory_limit_ = 1849 transfer_buffer_memory_limit_ =
1851 GetMaxTransferBufferUsageBytes(context_provider); 1850 GetMaxTransferBufferUsageBytes(context_provider);
1852 1851
1853 if (use_zero_copy) { 1852 if (use_zero_copy) {
1854 resource_pool_ = 1853 resource_pool_ =
1855 ResourcePool::Create(resource_provider, 1854 ResourcePool::Create(resource_provider,
(...skipping 27 matching lines...) Expand all
1883 transfer_buffer_memory_limit_); 1882 transfer_buffer_memory_limit_);
1884 resource_pool_ = ResourcePool::Create( 1883 resource_pool_ = ResourcePool::Create(
1885 resource_provider, 1884 resource_provider,
1886 GL_TEXTURE_2D, 1885 GL_TEXTURE_2D,
1887 resource_provider->memory_efficient_texture_format()); 1886 resource_provider->memory_efficient_texture_format());
1888 } 1887 }
1889 direct_raster_worker_pool_ = DirectRasterWorkerPool::Create( 1888 direct_raster_worker_pool_ = DirectRasterWorkerPool::Create(
1890 proxy_->ImplThreadTaskRunner(), resource_provider, context_provider); 1889 proxy_->ImplThreadTaskRunner(), resource_provider, context_provider);
1891 tile_manager_ = 1890 tile_manager_ =
1892 TileManager::Create(this, 1891 TileManager::Create(this,
1892 proxy_->ImplThreadTaskRunner(),
1893 resource_pool_.get(), 1893 resource_pool_.get(),
1894 raster_worker_pool_->AsRasterizer(), 1894 raster_worker_pool_->AsRasterizer(),
1895 direct_raster_worker_pool_->AsRasterizer(), 1895 direct_raster_worker_pool_->AsRasterizer(),
1896 allow_rasterize_on_demand,
1897 rendering_stats_instrumentation_); 1896 rendering_stats_instrumentation_);
1898 1897
1899 UpdateTileManagerMemoryPolicy(ActualManagedMemoryPolicy()); 1898 UpdateTileManagerMemoryPolicy(ActualManagedMemoryPolicy());
1900 need_to_update_visible_tiles_before_draw_ = false; 1899 need_to_update_visible_tiles_before_draw_ = false;
1901 } 1900 }
1902 1901
1903 void LayerTreeHostImpl::EnforceZeroBudget(bool zero_budget) { 1902 void LayerTreeHostImpl::EnforceZeroBudget(bool zero_budget) {
1904 SetManagedMemoryPolicy(cached_managed_memory_policy_, zero_budget); 1903 SetManagedMemoryPolicy(cached_managed_memory_policy_, zero_budget);
1905 } 1904 }
1906 1905
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
1952 bool use_zero_copy = 1951 bool use_zero_copy =
1953 (settings_.use_zero_copy || 1952 (settings_.use_zero_copy ||
1954 GetRendererCapabilities().using_shared_memory_resources) && 1953 GetRendererCapabilities().using_shared_memory_resources) &&
1955 GetRendererCapabilities().using_map_image; 1954 GetRendererCapabilities().using_map_image;
1956 1955
1957 // Sync query support is required by one-copy rasterizer. 1956 // Sync query support is required by one-copy rasterizer.
1958 bool use_one_copy = settings_.use_one_copy && 1957 bool use_one_copy = settings_.use_one_copy &&
1959 GetRendererCapabilities().using_map_image && 1958 GetRendererCapabilities().using_map_image &&
1960 resource_provider->use_sync_query(); 1959 resource_provider->use_sync_query();
1961 1960
1962 CreateAndSetTileManager( 1961 CreateAndSetTileManager(resource_provider.get(),
1963 resource_provider.get(), 1962 output_surface->context_provider().get(),
1964 output_surface->context_provider().get(), 1963 use_zero_copy,
1965 use_zero_copy, 1964 use_one_copy);
1966 use_one_copy,
1967 GetRendererCapabilities().allow_rasterize_on_demand);
1968 } 1965 }
1969 1966
1970 // Initialize vsync parameters to sane values. 1967 // Initialize vsync parameters to sane values.
1971 const base::TimeDelta display_refresh_interval = 1968 const base::TimeDelta display_refresh_interval =
1972 base::TimeDelta::FromMicroseconds(base::Time::kMicrosecondsPerSecond / 1969 base::TimeDelta::FromMicroseconds(base::Time::kMicrosecondsPerSecond /
1973 settings_.refresh_rate); 1970 settings_.refresh_rate);
1974 CommitVSyncParameters(base::TimeTicks(), display_refresh_interval); 1971 CommitVSyncParameters(base::TimeTicks(), display_refresh_interval);
1975 1972
1976 // TODO(brianderson): Don't use a hard-coded parent draw time. 1973 // TODO(brianderson): Don't use a hard-coded parent draw time.
1977 base::TimeDelta parent_draw_time = 1974 base::TimeDelta parent_draw_time =
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
2030 direct_raster_worker_pool_.reset(); 2027 direct_raster_worker_pool_.reset();
2031 staging_resource_pool_.reset(); 2028 staging_resource_pool_.reset();
2032 resource_provider_->InitializeSoftware(); 2029 resource_provider_->InitializeSoftware();
2033 2030
2034 bool skip_gl_renderer = true; 2031 bool skip_gl_renderer = true;
2035 CreateAndSetRenderer( 2032 CreateAndSetRenderer(
2036 output_surface_.get(), resource_provider_.get(), skip_gl_renderer); 2033 output_surface_.get(), resource_provider_.get(), skip_gl_renderer);
2037 2034
2038 EnforceZeroBudget(true); 2035 EnforceZeroBudget(true);
2039 DCHECK(GetRendererCapabilities().using_map_image); 2036 DCHECK(GetRendererCapabilities().using_map_image);
2040 CreateAndSetTileManager(resource_provider_.get(), 2037 CreateAndSetTileManager(resource_provider_.get(), NULL, true, false);
2041 NULL,
2042 true,
2043 false,
2044 GetRendererCapabilities().allow_rasterize_on_demand);
2045 DCHECK(tile_manager_); 2038 DCHECK(tile_manager_);
2046 2039
2047 client_->SetNeedsCommitOnImplThread(); 2040 client_->SetNeedsCommitOnImplThread();
2048 } 2041 }
2049 2042
2050 void LayerTreeHostImpl::SetViewportSize(const gfx::Size& device_viewport_size) { 2043 void LayerTreeHostImpl::SetViewportSize(const gfx::Size& device_viewport_size) {
2051 if (device_viewport_size == device_viewport_size_) 2044 if (device_viewport_size == device_viewport_size_)
2052 return; 2045 return;
2053 2046
2054 if (pending_tree_) 2047 if (pending_tree_)
(...skipping 1064 matching lines...) Expand 10 before | Expand all | Expand 10 after
3119 swap_promise_monitor_.erase(monitor); 3112 swap_promise_monitor_.erase(monitor);
3120 } 3113 }
3121 3114
3122 void LayerTreeHostImpl::NotifySwapPromiseMonitorsOfSetNeedsRedraw() { 3115 void LayerTreeHostImpl::NotifySwapPromiseMonitorsOfSetNeedsRedraw() {
3123 std::set<SwapPromiseMonitor*>::iterator it = swap_promise_monitor_.begin(); 3116 std::set<SwapPromiseMonitor*>::iterator it = swap_promise_monitor_.begin();
3124 for (; it != swap_promise_monitor_.end(); it++) 3117 for (; it != swap_promise_monitor_.end(); it++)
3125 (*it)->OnSetNeedsRedrawOnImpl(); 3118 (*it)->OnSetNeedsRedrawOnImpl();
3126 } 3119 }
3127 3120
3128 } // namespace cc 3121 } // namespace cc
OLDNEW
« cc/resources/tile_manager.cc ('K') | « cc/trees/layer_tree_host_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698