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

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: danakj review Created 6 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 #include <limits> 8 #include <limits>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 1925 matching lines...) Expand 10 before | Expand all | Expand 10 after
1936 if (pending_tree_) 1936 if (pending_tree_)
1937 pending_tree_->set_needs_update_draw_properties(); 1937 pending_tree_->set_needs_update_draw_properties();
1938 client_->UpdateRendererCapabilitiesOnImplThread(); 1938 client_->UpdateRendererCapabilitiesOnImplThread();
1939 } 1939 }
1940 1940
1941 void LayerTreeHostImpl::CreateAndSetTileManager() { 1941 void LayerTreeHostImpl::CreateAndSetTileManager() {
1942 DCHECK(!tile_manager_); 1942 DCHECK(!tile_manager_);
1943 DCHECK(settings_.impl_side_painting); 1943 DCHECK(settings_.impl_side_painting);
1944 DCHECK(output_surface_); 1944 DCHECK(output_surface_);
1945 DCHECK(resource_provider_); 1945 DCHECK(resource_provider_);
1946 DCHECK(proxy_->ImplThreadTaskRunner()); 1946 base::SingleThreadTaskRunner* task_runner =
1947 proxy_->HasImplThread() ? proxy_->ImplThreadTaskRunner()
1948 : proxy_->MainThreadTaskRunner();
1949 DCHECK(task_runner);
1947 1950
1948 ContextProvider* context_provider = output_surface_->context_provider(); 1951 ContextProvider* context_provider = output_surface_->context_provider();
1949 transfer_buffer_memory_limit_ = 1952 transfer_buffer_memory_limit_ =
1950 GetMaxTransferBufferUsageBytes(context_provider, settings_.refresh_rate); 1953 GetMaxTransferBufferUsageBytes(context_provider, settings_.refresh_rate);
1951 1954
1952 if (use_gpu_rasterization_ && context_provider) { 1955 if (use_gpu_rasterization_ && context_provider) {
1953 resource_pool_ = 1956 resource_pool_ =
1954 ResourcePool::Create(resource_provider_.get(), 1957 ResourcePool::Create(resource_provider_.get(),
1955 GL_TEXTURE_2D, 1958 GL_TEXTURE_2D,
1956 resource_provider_->best_texture_format()); 1959 resource_provider_->best_texture_format());
1957 1960
1958 raster_worker_pool_ = 1961 raster_worker_pool_ = GpuRasterWorkerPool::Create(
1959 GpuRasterWorkerPool::Create(proxy_->ImplThreadTaskRunner(), 1962 task_runner, context_provider, resource_provider_.get());
1960 context_provider,
1961 resource_provider_.get());
1962 } else if (UseOneCopyTextureUpload() && context_provider) { 1963 } else if (UseOneCopyTextureUpload() && context_provider) {
1963 // We need to create a staging resource pool when using copy rasterizer. 1964 // We need to create a staging resource pool when using copy rasterizer.
1964 staging_resource_pool_ = 1965 staging_resource_pool_ =
1965 ResourcePool::Create(resource_provider_.get(), 1966 ResourcePool::Create(resource_provider_.get(),
1966 GetMapImageTextureTarget(context_provider), 1967 GetMapImageTextureTarget(context_provider),
1967 resource_provider_->best_texture_format()); 1968 resource_provider_->best_texture_format());
1968 resource_pool_ = 1969 resource_pool_ =
1969 ResourcePool::Create(resource_provider_.get(), 1970 ResourcePool::Create(resource_provider_.get(),
1970 GL_TEXTURE_2D, 1971 GL_TEXTURE_2D,
1971 resource_provider_->best_texture_format()); 1972 resource_provider_->best_texture_format());
1972 1973
1973 raster_worker_pool_ = ImageCopyRasterWorkerPool::Create( 1974 raster_worker_pool_ = ImageCopyRasterWorkerPool::Create(
1974 proxy_->ImplThreadTaskRunner(), 1975 task_runner,
1975 RasterWorkerPool::GetTaskGraphRunner(), 1976 RasterWorkerPool::GetTaskGraphRunner(),
1976 context_provider, 1977 context_provider,
1977 resource_provider_.get(), 1978 resource_provider_.get(),
1978 staging_resource_pool_.get()); 1979 staging_resource_pool_.get());
1979 } else if (!UseZeroCopyTextureUpload() && context_provider) { 1980 } else if (!UseZeroCopyTextureUpload() && context_provider) {
1980 resource_pool_ = ResourcePool::Create( 1981 resource_pool_ = ResourcePool::Create(
1981 resource_provider_.get(), 1982 resource_provider_.get(),
1982 GL_TEXTURE_2D, 1983 GL_TEXTURE_2D,
1983 resource_provider_->memory_efficient_texture_format()); 1984 resource_provider_->memory_efficient_texture_format());
1984 1985
1985 raster_worker_pool_ = PixelBufferRasterWorkerPool::Create( 1986 raster_worker_pool_ = PixelBufferRasterWorkerPool::Create(
1986 proxy_->ImplThreadTaskRunner(), 1987 task_runner,
1987 RasterWorkerPool::GetTaskGraphRunner(), 1988 RasterWorkerPool::GetTaskGraphRunner(),
1988 context_provider, 1989 context_provider,
1989 resource_provider_.get(), 1990 resource_provider_.get(),
1990 transfer_buffer_memory_limit_); 1991 transfer_buffer_memory_limit_);
1991 } else { 1992 } else {
1992 resource_pool_ = 1993 resource_pool_ =
1993 ResourcePool::Create(resource_provider_.get(), 1994 ResourcePool::Create(resource_provider_.get(),
1994 GetMapImageTextureTarget(context_provider), 1995 GetMapImageTextureTarget(context_provider),
1995 resource_provider_->best_texture_format()); 1996 resource_provider_->best_texture_format());
1996 1997
1997 raster_worker_pool_ = 1998 raster_worker_pool_ =
1998 ImageRasterWorkerPool::Create(proxy_->ImplThreadTaskRunner(), 1999 ImageRasterWorkerPool::Create(task_runner,
1999 RasterWorkerPool::GetTaskGraphRunner(), 2000 RasterWorkerPool::GetTaskGraphRunner(),
2000 resource_provider_.get()); 2001 resource_provider_.get());
2001 } 2002 }
2002 2003
2003 tile_manager_ = 2004 tile_manager_ = TileManager::Create(this,
2004 TileManager::Create(this, 2005 task_runner,
2005 proxy_->ImplThreadTaskRunner(), 2006 resource_pool_.get(),
2006 resource_pool_.get(), 2007 raster_worker_pool_->AsRasterizer(),
2007 raster_worker_pool_->AsRasterizer(), 2008 rendering_stats_instrumentation_);
2008 rendering_stats_instrumentation_);
2009 2009
2010 UpdateTileManagerMemoryPolicy(ActualManagedMemoryPolicy()); 2010 UpdateTileManagerMemoryPolicy(ActualManagedMemoryPolicy());
2011 need_to_update_visible_tiles_before_draw_ = false; 2011 need_to_update_visible_tiles_before_draw_ = false;
2012 } 2012 }
2013 2013
2014 void LayerTreeHostImpl::DestroyTileManager() { 2014 void LayerTreeHostImpl::DestroyTileManager() {
2015 tile_manager_.reset(); 2015 tile_manager_.reset();
2016 resource_pool_.reset(); 2016 resource_pool_.reset();
2017 staging_resource_pool_.reset(); 2017 staging_resource_pool_.reset();
2018 raster_worker_pool_.reset(); 2018 raster_worker_pool_.reset();
(...skipping 1338 matching lines...) Expand 10 before | Expand all | Expand 10 after
3357 } 3357 }
3358 3358
3359 void LayerTreeHostImpl::UnregisterPictureLayerImpl(PictureLayerImpl* layer) { 3359 void LayerTreeHostImpl::UnregisterPictureLayerImpl(PictureLayerImpl* layer) {
3360 std::vector<PictureLayerImpl*>::iterator it = 3360 std::vector<PictureLayerImpl*>::iterator it =
3361 std::find(picture_layers_.begin(), picture_layers_.end(), layer); 3361 std::find(picture_layers_.begin(), picture_layers_.end(), layer);
3362 DCHECK(it != picture_layers_.end()); 3362 DCHECK(it != picture_layers_.end());
3363 picture_layers_.erase(it); 3363 picture_layers_.erase(it);
3364 } 3364 }
3365 3365
3366 } // namespace cc 3366 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698