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

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

Powered by Google App Engine
This is Rietveld 408576698