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

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

Issue 508373002: cc: Single-threaded impl-side painting for unit tests (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 6 years, 2 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
« no previous file with comments | « cc/trees/layer_tree_host.h ('k') | cc/trees/layer_tree_host_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 1919 matching lines...) Expand 10 before | Expand all | Expand 10 after
1930 if (pending_tree_) 1930 if (pending_tree_)
1931 pending_tree_->set_needs_update_draw_properties(); 1931 pending_tree_->set_needs_update_draw_properties();
1932 client_->UpdateRendererCapabilitiesOnImplThread(); 1932 client_->UpdateRendererCapabilitiesOnImplThread();
1933 } 1933 }
1934 1934
1935 void LayerTreeHostImpl::CreateAndSetTileManager() { 1935 void LayerTreeHostImpl::CreateAndSetTileManager() {
1936 DCHECK(!tile_manager_); 1936 DCHECK(!tile_manager_);
1937 DCHECK(settings_.impl_side_painting); 1937 DCHECK(settings_.impl_side_painting);
1938 DCHECK(output_surface_); 1938 DCHECK(output_surface_);
1939 DCHECK(resource_provider_); 1939 DCHECK(resource_provider_);
1940 DCHECK(proxy_->ImplThreadTaskRunner()); 1940 base::SingleThreadTaskRunner* task_runner =
1941 proxy_->HasImplThread() ? proxy_->ImplThreadTaskRunner()
1942 : proxy_->MainThreadTaskRunner();
1943 DCHECK(task_runner);
1941 1944
1942 ContextProvider* context_provider = output_surface_->context_provider(); 1945 ContextProvider* context_provider = output_surface_->context_provider();
1943 if (!context_provider) { 1946 if (!context_provider) {
1944 resource_pool_ = 1947 resource_pool_ =
1945 ResourcePool::Create(resource_provider_.get(), 1948 ResourcePool::Create(resource_provider_.get(),
1946 GL_TEXTURE_2D, 1949 GL_TEXTURE_2D,
1947 resource_provider_->best_texture_format()); 1950 resource_provider_->best_texture_format());
1948 1951
1949 raster_worker_pool_ = 1952 raster_worker_pool_ =
1950 BitmapRasterWorkerPool::Create(proxy_->ImplThreadTaskRunner(), 1953 BitmapRasterWorkerPool::Create(proxy_->ImplThreadTaskRunner(),
1951 RasterWorkerPool::GetTaskGraphRunner(), 1954 RasterWorkerPool::GetTaskGraphRunner(),
1952 resource_provider_.get()); 1955 resource_provider_.get());
1953 } else if (use_gpu_rasterization_) { 1956 } else if (use_gpu_rasterization_) {
1954 resource_pool_ = 1957 resource_pool_ =
1955 ResourcePool::Create(resource_provider_.get(), 1958 ResourcePool::Create(resource_provider_.get(),
1956 GL_TEXTURE_2D, 1959 GL_TEXTURE_2D,
1957 resource_provider_->best_texture_format()); 1960 resource_provider_->best_texture_format());
1958 1961
1959 raster_worker_pool_ = 1962 raster_worker_pool_ = GpuRasterWorkerPool::Create(
1960 GpuRasterWorkerPool::Create(proxy_->ImplThreadTaskRunner(), 1963 task_runner, context_provider, resource_provider_.get());
1961 context_provider,
1962 resource_provider_.get());
1963 } else if (UseZeroCopyRasterizer()) { 1964 } else if (UseZeroCopyRasterizer()) {
1964 resource_pool_ = ResourcePool::Create( 1965 resource_pool_ = ResourcePool::Create(
1965 resource_provider_.get(), 1966 resource_provider_.get(),
1966 GetMapImageTextureTarget(context_provider->ContextCapabilities()), 1967 GetMapImageTextureTarget(context_provider->ContextCapabilities()),
1967 resource_provider_->best_texture_format()); 1968 resource_provider_->best_texture_format());
1968 1969
1969 raster_worker_pool_ = 1970 raster_worker_pool_ =
1970 ZeroCopyRasterWorkerPool::Create(proxy_->ImplThreadTaskRunner(), 1971 ZeroCopyRasterWorkerPool::Create(proxy_->ImplThreadTaskRunner(),
1971 RasterWorkerPool::GetTaskGraphRunner(), 1972 RasterWorkerPool::GetTaskGraphRunner(),
1972 resource_provider_.get()); 1973 resource_provider_.get());
1973 } else if (UseOneCopyRasterizer()) { 1974 } else if (UseOneCopyRasterizer()) {
1974 // We need to create a staging resource pool when using copy rasterizer. 1975 // We need to create a staging resource pool when using copy rasterizer.
1975 staging_resource_pool_ = ResourcePool::Create( 1976 staging_resource_pool_ = ResourcePool::Create(
1976 resource_provider_.get(), 1977 resource_provider_.get(),
1977 GetMapImageTextureTarget(context_provider->ContextCapabilities()), 1978 GetMapImageTextureTarget(context_provider->ContextCapabilities()),
1978 resource_provider_->best_texture_format()); 1979 resource_provider_->best_texture_format());
1979 resource_pool_ = 1980 resource_pool_ =
1980 ResourcePool::Create(resource_provider_.get(), 1981 ResourcePool::Create(resource_provider_.get(),
1981 GL_TEXTURE_2D, 1982 GL_TEXTURE_2D,
1982 resource_provider_->best_texture_format()); 1983 resource_provider_->best_texture_format());
1983 1984
1984 raster_worker_pool_ = 1985 raster_worker_pool_ =
1985 OneCopyRasterWorkerPool::Create(proxy_->ImplThreadTaskRunner(), 1986 OneCopyRasterWorkerPool::Create(task_runner,
1986 RasterWorkerPool::GetTaskGraphRunner(), 1987 RasterWorkerPool::GetTaskGraphRunner(),
1987 context_provider, 1988 context_provider,
1988 resource_provider_.get(), 1989 resource_provider_.get(),
1989 staging_resource_pool_.get()); 1990 staging_resource_pool_.get());
1990 } else { 1991 } else {
1991 resource_pool_ = ResourcePool::Create( 1992 resource_pool_ = ResourcePool::Create(
1992 resource_provider_.get(), 1993 resource_provider_.get(),
1993 GL_TEXTURE_2D, 1994 GL_TEXTURE_2D,
1994 resource_provider_->memory_efficient_texture_format()); 1995 resource_provider_->memory_efficient_texture_format());
1995 1996
1996 raster_worker_pool_ = PixelBufferRasterWorkerPool::Create( 1997 raster_worker_pool_ = PixelBufferRasterWorkerPool::Create(
1997 proxy_->ImplThreadTaskRunner(), 1998 task_runner,
1998 RasterWorkerPool::GetTaskGraphRunner(), 1999 RasterWorkerPool::GetTaskGraphRunner(),
1999 context_provider, 2000 context_provider,
2000 resource_provider_.get(), 2001 resource_provider_.get(),
2001 GetMaxTransferBufferUsageBytes(context_provider->ContextCapabilities(), 2002 GetMaxTransferBufferUsageBytes(context_provider->ContextCapabilities(),
2002 settings_.refresh_rate)); 2003 settings_.refresh_rate));
2003 } 2004 }
2004 2005
2005 tile_manager_ = 2006 tile_manager_ = TileManager::Create(this,
2006 TileManager::Create(this, 2007 task_runner,
2007 proxy_->ImplThreadTaskRunner(), 2008 resource_pool_.get(),
2008 resource_pool_.get(), 2009 raster_worker_pool_->AsRasterizer(),
2009 raster_worker_pool_->AsRasterizer(), 2010 rendering_stats_instrumentation_);
2010 rendering_stats_instrumentation_);
2011 2011
2012 UpdateTileManagerMemoryPolicy(ActualManagedMemoryPolicy()); 2012 UpdateTileManagerMemoryPolicy(ActualManagedMemoryPolicy());
2013 need_to_update_visible_tiles_before_draw_ = false; 2013 need_to_update_visible_tiles_before_draw_ = false;
2014 } 2014 }
2015 2015
2016 void LayerTreeHostImpl::DestroyTileManager() { 2016 void LayerTreeHostImpl::DestroyTileManager() {
2017 tile_manager_ = nullptr; 2017 tile_manager_ = nullptr;
2018 resource_pool_ = nullptr; 2018 resource_pool_ = nullptr;
2019 staging_resource_pool_ = nullptr; 2019 staging_resource_pool_ = nullptr;
2020 raster_worker_pool_ = nullptr; 2020 raster_worker_pool_ = nullptr;
(...skipping 1358 matching lines...) Expand 10 before | Expand all | Expand 10 after
3379 } 3379 }
3380 3380
3381 void LayerTreeHostImpl::UnregisterPictureLayerImpl(PictureLayerImpl* layer) { 3381 void LayerTreeHostImpl::UnregisterPictureLayerImpl(PictureLayerImpl* layer) {
3382 std::vector<PictureLayerImpl*>::iterator it = 3382 std::vector<PictureLayerImpl*>::iterator it =
3383 std::find(picture_layers_.begin(), picture_layers_.end(), layer); 3383 std::find(picture_layers_.begin(), picture_layers_.end(), layer);
3384 DCHECK(it != picture_layers_.end()); 3384 DCHECK(it != picture_layers_.end());
3385 picture_layers_.erase(it); 3385 picture_layers_.erase(it);
3386 } 3386 }
3387 3387
3388 } // namespace cc 3388 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host.h ('k') | cc/trees/layer_tree_host_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698