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

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: Swap promise unit test 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 1918 matching lines...) Expand 10 before | Expand all | Expand 10 after
1929 if (pending_tree_) 1929 if (pending_tree_)
1930 pending_tree_->set_needs_update_draw_properties(); 1930 pending_tree_->set_needs_update_draw_properties();
1931 client_->UpdateRendererCapabilitiesOnImplThread(); 1931 client_->UpdateRendererCapabilitiesOnImplThread();
1932 } 1932 }
1933 1933
1934 void LayerTreeHostImpl::CreateAndSetTileManager() { 1934 void LayerTreeHostImpl::CreateAndSetTileManager() {
1935 DCHECK(!tile_manager_); 1935 DCHECK(!tile_manager_);
1936 DCHECK(settings_.impl_side_painting); 1936 DCHECK(settings_.impl_side_painting);
1937 DCHECK(output_surface_); 1937 DCHECK(output_surface_);
1938 DCHECK(resource_provider_); 1938 DCHECK(resource_provider_);
1939 DCHECK(proxy_->ImplThreadTaskRunner()); 1939 base::SingleThreadTaskRunner* task_runner =
1940 proxy_->HasImplThread() ? proxy_->ImplThreadTaskRunner()
1941 : proxy_->MainThreadTaskRunner();
1942 DCHECK(task_runner);
1940 1943
1941 ContextProvider* context_provider = output_surface_->context_provider(); 1944 ContextProvider* context_provider = output_surface_->context_provider();
1942 if (!context_provider) { 1945 if (!context_provider) {
1943 resource_pool_ = 1946 resource_pool_ =
1944 ResourcePool::Create(resource_provider_.get(), 1947 ResourcePool::Create(resource_provider_.get(),
1945 GL_TEXTURE_2D, 1948 GL_TEXTURE_2D,
1946 resource_provider_->best_texture_format()); 1949 resource_provider_->best_texture_format());
1947 1950
1948 raster_worker_pool_ = 1951 raster_worker_pool_ =
1949 BitmapRasterWorkerPool::Create(proxy_->ImplThreadTaskRunner(), 1952 BitmapRasterWorkerPool::Create(proxy_->ImplThreadTaskRunner(),
1950 RasterWorkerPool::GetTaskGraphRunner(), 1953 RasterWorkerPool::GetTaskGraphRunner(),
1951 resource_provider_.get()); 1954 resource_provider_.get());
1952 } else if (use_gpu_rasterization_) { 1955 } else if (use_gpu_rasterization_) {
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 (UseZeroCopyRasterizer()) { 1963 } else if (UseZeroCopyRasterizer()) {
1963 resource_pool_ = ResourcePool::Create( 1964 resource_pool_ = ResourcePool::Create(
1964 resource_provider_.get(), 1965 resource_provider_.get(),
1965 GetMapImageTextureTarget(context_provider->ContextCapabilities()), 1966 GetMapImageTextureTarget(context_provider->ContextCapabilities()),
1966 resource_provider_->best_texture_format()); 1967 resource_provider_->best_texture_format());
1967 1968
1968 raster_worker_pool_ = 1969 raster_worker_pool_ =
1969 ZeroCopyRasterWorkerPool::Create(proxy_->ImplThreadTaskRunner(), 1970 ZeroCopyRasterWorkerPool::Create(proxy_->ImplThreadTaskRunner(),
1970 RasterWorkerPool::GetTaskGraphRunner(), 1971 RasterWorkerPool::GetTaskGraphRunner(),
1971 resource_provider_.get()); 1972 resource_provider_.get());
1972 } else if (UseOneCopyRasterizer()) { 1973 } else if (UseOneCopyRasterizer()) {
1973 // We need to create a staging resource pool when using copy rasterizer. 1974 // We need to create a staging resource pool when using copy rasterizer.
1974 staging_resource_pool_ = ResourcePool::Create( 1975 staging_resource_pool_ = ResourcePool::Create(
1975 resource_provider_.get(), 1976 resource_provider_.get(),
1976 GetMapImageTextureTarget(context_provider->ContextCapabilities()), 1977 GetMapImageTextureTarget(context_provider->ContextCapabilities()),
1977 resource_provider_->best_texture_format()); 1978 resource_provider_->best_texture_format());
1978 resource_pool_ = 1979 resource_pool_ =
1979 ResourcePool::Create(resource_provider_.get(), 1980 ResourcePool::Create(resource_provider_.get(),
1980 GL_TEXTURE_2D, 1981 GL_TEXTURE_2D,
1981 resource_provider_->best_texture_format()); 1982 resource_provider_->best_texture_format());
1982 1983
1983 raster_worker_pool_ = 1984 raster_worker_pool_ =
1984 OneCopyRasterWorkerPool::Create(proxy_->ImplThreadTaskRunner(), 1985 OneCopyRasterWorkerPool::Create(task_runner,
1985 RasterWorkerPool::GetTaskGraphRunner(), 1986 RasterWorkerPool::GetTaskGraphRunner(),
1986 context_provider, 1987 context_provider,
1987 resource_provider_.get(), 1988 resource_provider_.get(),
1988 staging_resource_pool_.get()); 1989 staging_resource_pool_.get());
1989 } else { 1990 } else {
1990 resource_pool_ = ResourcePool::Create( 1991 resource_pool_ = ResourcePool::Create(
1991 resource_provider_.get(), 1992 resource_provider_.get(),
1992 GL_TEXTURE_2D, 1993 GL_TEXTURE_2D,
1993 resource_provider_->memory_efficient_texture_format()); 1994 resource_provider_->memory_efficient_texture_format());
1994 1995
1995 raster_worker_pool_ = PixelBufferRasterWorkerPool::Create( 1996 raster_worker_pool_ = PixelBufferRasterWorkerPool::Create(
1996 proxy_->ImplThreadTaskRunner(), 1997 task_runner,
1997 RasterWorkerPool::GetTaskGraphRunner(), 1998 RasterWorkerPool::GetTaskGraphRunner(),
1998 context_provider, 1999 context_provider,
1999 resource_provider_.get(), 2000 resource_provider_.get(),
2000 GetMaxTransferBufferUsageBytes(context_provider->ContextCapabilities(), 2001 GetMaxTransferBufferUsageBytes(context_provider->ContextCapabilities(),
2001 settings_.refresh_rate)); 2002 settings_.refresh_rate));
2002 } 2003 }
2003 2004
2004 tile_manager_ = 2005 tile_manager_ = TileManager::Create(this,
2005 TileManager::Create(this, 2006 task_runner,
2006 proxy_->ImplThreadTaskRunner(), 2007 resource_pool_.get(),
2007 resource_pool_.get(), 2008 raster_worker_pool_->AsRasterizer(),
2008 raster_worker_pool_->AsRasterizer(), 2009 rendering_stats_instrumentation_);
2009 rendering_stats_instrumentation_);
2010 2010
2011 UpdateTileManagerMemoryPolicy(ActualManagedMemoryPolicy()); 2011 UpdateTileManagerMemoryPolicy(ActualManagedMemoryPolicy());
2012 need_to_update_visible_tiles_before_draw_ = false; 2012 need_to_update_visible_tiles_before_draw_ = false;
2013 } 2013 }
2014 2014
2015 void LayerTreeHostImpl::DestroyTileManager() { 2015 void LayerTreeHostImpl::DestroyTileManager() {
2016 tile_manager_ = nullptr; 2016 tile_manager_ = nullptr;
2017 resource_pool_ = nullptr; 2017 resource_pool_ = nullptr;
2018 staging_resource_pool_ = nullptr; 2018 staging_resource_pool_ = nullptr;
2019 raster_worker_pool_ = nullptr; 2019 raster_worker_pool_ = nullptr;
(...skipping 1360 matching lines...) Expand 10 before | Expand all | Expand 10 after
3380 } 3380 }
3381 3381
3382 void LayerTreeHostImpl::UnregisterPictureLayerImpl(PictureLayerImpl* layer) { 3382 void LayerTreeHostImpl::UnregisterPictureLayerImpl(PictureLayerImpl* layer) {
3383 std::vector<PictureLayerImpl*>::iterator it = 3383 std::vector<PictureLayerImpl*>::iterator it =
3384 std::find(picture_layers_.begin(), picture_layers_.end(), layer); 3384 std::find(picture_layers_.begin(), picture_layers_.end(), layer);
3385 DCHECK(it != picture_layers_.end()); 3385 DCHECK(it != picture_layers_.end());
3386 picture_layers_.erase(it); 3386 picture_layers_.erase(it);
3387 } 3387 }
3388 3388
3389 } // namespace cc 3389 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698