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

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: Also abort remaining swap promises for synchronous composite 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
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 1950 matching lines...) Expand 10 before | Expand all | Expand 10 after
1961 if (pending_tree_) 1961 if (pending_tree_)
1962 pending_tree_->set_needs_update_draw_properties(); 1962 pending_tree_->set_needs_update_draw_properties();
1963 client_->UpdateRendererCapabilitiesOnImplThread(); 1963 client_->UpdateRendererCapabilitiesOnImplThread();
1964 } 1964 }
1965 1965
1966 void LayerTreeHostImpl::CreateAndSetTileManager() { 1966 void LayerTreeHostImpl::CreateAndSetTileManager() {
1967 DCHECK(!tile_manager_); 1967 DCHECK(!tile_manager_);
1968 DCHECK(settings_.impl_side_painting); 1968 DCHECK(settings_.impl_side_painting);
1969 DCHECK(output_surface_); 1969 DCHECK(output_surface_);
1970 DCHECK(resource_provider_); 1970 DCHECK(resource_provider_);
1971 DCHECK(proxy_->ImplThreadTaskRunner()); 1971 base::SingleThreadTaskRunner* task_runner =
1972 proxy_->HasImplThread() ? proxy_->ImplThreadTaskRunner()
1973 : proxy_->MainThreadTaskRunner();
1974 DCHECK(task_runner);
1972 1975
1973 ContextProvider* context_provider = output_surface_->context_provider(); 1976 ContextProvider* context_provider = output_surface_->context_provider();
1974 if (!context_provider) { 1977 if (!context_provider) {
1975 resource_pool_ = 1978 resource_pool_ =
1976 ResourcePool::Create(resource_provider_.get(), 1979 ResourcePool::Create(resource_provider_.get(),
1977 GL_TEXTURE_2D, 1980 GL_TEXTURE_2D,
1978 resource_provider_->best_texture_format()); 1981 resource_provider_->best_texture_format());
1979 1982
1980 raster_worker_pool_ = 1983 raster_worker_pool_ =
1981 BitmapRasterWorkerPool::Create(proxy_->ImplThreadTaskRunner(), 1984 BitmapRasterWorkerPool::Create(proxy_->ImplThreadTaskRunner(),
1982 RasterWorkerPool::GetTaskGraphRunner(), 1985 RasterWorkerPool::GetTaskGraphRunner(),
1983 resource_provider_.get()); 1986 resource_provider_.get());
1984 } else if (use_gpu_rasterization_) { 1987 } else if (use_gpu_rasterization_) {
1985 resource_pool_ = 1988 resource_pool_ =
1986 ResourcePool::Create(resource_provider_.get(), 1989 ResourcePool::Create(resource_provider_.get(),
1987 GL_TEXTURE_2D, 1990 GL_TEXTURE_2D,
1988 resource_provider_->best_texture_format()); 1991 resource_provider_->best_texture_format());
1989 1992
1990 raster_worker_pool_ = 1993 raster_worker_pool_ = GpuRasterWorkerPool::Create(
1991 GpuRasterWorkerPool::Create(proxy_->ImplThreadTaskRunner(), 1994 task_runner, context_provider, resource_provider_.get());
1992 context_provider,
1993 resource_provider_.get());
1994 } else if (UseZeroCopyRasterizer()) { 1995 } else if (UseZeroCopyRasterizer()) {
1995 resource_pool_ = ResourcePool::Create( 1996 resource_pool_ = ResourcePool::Create(
1996 resource_provider_.get(), 1997 resource_provider_.get(),
1997 GetMapImageTextureTarget(context_provider->ContextCapabilities()), 1998 GetMapImageTextureTarget(context_provider->ContextCapabilities()),
1998 resource_provider_->best_texture_format()); 1999 resource_provider_->best_texture_format());
1999 2000
2000 raster_worker_pool_ = 2001 raster_worker_pool_ =
2001 ZeroCopyRasterWorkerPool::Create(proxy_->ImplThreadTaskRunner(), 2002 ZeroCopyRasterWorkerPool::Create(proxy_->ImplThreadTaskRunner(),
2002 RasterWorkerPool::GetTaskGraphRunner(), 2003 RasterWorkerPool::GetTaskGraphRunner(),
2003 resource_provider_.get()); 2004 resource_provider_.get());
2004 } else if (UseOneCopyRasterizer()) { 2005 } else if (UseOneCopyRasterizer()) {
2005 // We need to create a staging resource pool when using copy rasterizer. 2006 // We need to create a staging resource pool when using copy rasterizer.
2006 staging_resource_pool_ = ResourcePool::Create( 2007 staging_resource_pool_ = ResourcePool::Create(
2007 resource_provider_.get(), 2008 resource_provider_.get(),
2008 GetMapImageTextureTarget(context_provider->ContextCapabilities()), 2009 GetMapImageTextureTarget(context_provider->ContextCapabilities()),
2009 resource_provider_->best_texture_format()); 2010 resource_provider_->best_texture_format());
2010 resource_pool_ = 2011 resource_pool_ =
2011 ResourcePool::Create(resource_provider_.get(), 2012 ResourcePool::Create(resource_provider_.get(),
2012 GL_TEXTURE_2D, 2013 GL_TEXTURE_2D,
2013 resource_provider_->best_texture_format()); 2014 resource_provider_->best_texture_format());
2014 2015
2015 raster_worker_pool_ = 2016 raster_worker_pool_ =
2016 OneCopyRasterWorkerPool::Create(proxy_->ImplThreadTaskRunner(), 2017 OneCopyRasterWorkerPool::Create(task_runner,
2017 RasterWorkerPool::GetTaskGraphRunner(), 2018 RasterWorkerPool::GetTaskGraphRunner(),
2018 context_provider, 2019 context_provider,
2019 resource_provider_.get(), 2020 resource_provider_.get(),
2020 staging_resource_pool_.get()); 2021 staging_resource_pool_.get());
2021 } else { 2022 } else {
2022 resource_pool_ = ResourcePool::Create( 2023 resource_pool_ = ResourcePool::Create(
2023 resource_provider_.get(), 2024 resource_provider_.get(),
2024 GL_TEXTURE_2D, 2025 GL_TEXTURE_2D,
2025 resource_provider_->memory_efficient_texture_format()); 2026 resource_provider_->memory_efficient_texture_format());
2026 2027
2027 raster_worker_pool_ = PixelBufferRasterWorkerPool::Create( 2028 raster_worker_pool_ = PixelBufferRasterWorkerPool::Create(
2028 proxy_->ImplThreadTaskRunner(), 2029 task_runner,
2029 RasterWorkerPool::GetTaskGraphRunner(), 2030 RasterWorkerPool::GetTaskGraphRunner(),
2030 context_provider, 2031 context_provider,
2031 resource_provider_.get(), 2032 resource_provider_.get(),
2032 GetMaxTransferBufferUsageBytes(context_provider->ContextCapabilities(), 2033 GetMaxTransferBufferUsageBytes(context_provider->ContextCapabilities(),
2033 settings_.refresh_rate)); 2034 settings_.refresh_rate));
2034 } 2035 }
2035 2036
2036 tile_manager_ = 2037 tile_manager_ = TileManager::Create(this,
2037 TileManager::Create(this, 2038 task_runner,
2038 proxy_->ImplThreadTaskRunner(), 2039 resource_pool_.get(),
2039 resource_pool_.get(), 2040 raster_worker_pool_->AsRasterizer(),
2040 raster_worker_pool_->AsRasterizer(), 2041 rendering_stats_instrumentation_);
2041 rendering_stats_instrumentation_);
2042 2042
2043 UpdateTileManagerMemoryPolicy(ActualManagedMemoryPolicy()); 2043 UpdateTileManagerMemoryPolicy(ActualManagedMemoryPolicy());
2044 need_to_update_visible_tiles_before_draw_ = false; 2044 need_to_update_visible_tiles_before_draw_ = false;
2045 } 2045 }
2046 2046
2047 void LayerTreeHostImpl::DestroyTileManager() { 2047 void LayerTreeHostImpl::DestroyTileManager() {
2048 tile_manager_ = nullptr; 2048 tile_manager_ = nullptr;
2049 resource_pool_ = nullptr; 2049 resource_pool_ = nullptr;
2050 staging_resource_pool_ = nullptr; 2050 staging_resource_pool_ = nullptr;
2051 raster_worker_pool_ = nullptr; 2051 raster_worker_pool_ = nullptr;
(...skipping 1358 matching lines...) Expand 10 before | Expand all | Expand 10 after
3410 } 3410 }
3411 3411
3412 void LayerTreeHostImpl::UnregisterPictureLayerImpl(PictureLayerImpl* layer) { 3412 void LayerTreeHostImpl::UnregisterPictureLayerImpl(PictureLayerImpl* layer) {
3413 std::vector<PictureLayerImpl*>::iterator it = 3413 std::vector<PictureLayerImpl*>::iterator it =
3414 std::find(picture_layers_.begin(), picture_layers_.end(), layer); 3414 std::find(picture_layers_.begin(), picture_layers_.end(), layer);
3415 DCHECK(it != picture_layers_.end()); 3415 DCHECK(it != picture_layers_.end());
3416 picture_layers_.erase(it); 3416 picture_layers_.erase(it);
3417 } 3417 }
3418 3418
3419 } // namespace cc 3419 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698