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

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

Issue 1063493002: cc: Remove all traces of synchronous GPU rasterization (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: more deleted code Created 5 years, 8 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 #include <map> 9 #include <map>
10 10
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 #include "cc/resources/eviction_tile_priority_queue.h" 53 #include "cc/resources/eviction_tile_priority_queue.h"
54 #include "cc/resources/gpu_rasterizer.h" 54 #include "cc/resources/gpu_rasterizer.h"
55 #include "cc/resources/gpu_tile_task_worker_pool.h" 55 #include "cc/resources/gpu_tile_task_worker_pool.h"
56 #include "cc/resources/memory_history.h" 56 #include "cc/resources/memory_history.h"
57 #include "cc/resources/one_copy_tile_task_worker_pool.h" 57 #include "cc/resources/one_copy_tile_task_worker_pool.h"
58 #include "cc/resources/picture_layer_tiling.h" 58 #include "cc/resources/picture_layer_tiling.h"
59 #include "cc/resources/pixel_buffer_tile_task_worker_pool.h" 59 #include "cc/resources/pixel_buffer_tile_task_worker_pool.h"
60 #include "cc/resources/prioritized_resource_manager.h" 60 #include "cc/resources/prioritized_resource_manager.h"
61 #include "cc/resources/raster_tile_priority_queue.h" 61 #include "cc/resources/raster_tile_priority_queue.h"
62 #include "cc/resources/resource_pool.h" 62 #include "cc/resources/resource_pool.h"
63 #include "cc/resources/software_rasterizer.h"
64 #include "cc/resources/texture_mailbox_deleter.h" 63 #include "cc/resources/texture_mailbox_deleter.h"
65 #include "cc/resources/tile_task_worker_pool.h" 64 #include "cc/resources/tile_task_worker_pool.h"
66 #include "cc/resources/ui_resource_bitmap.h" 65 #include "cc/resources/ui_resource_bitmap.h"
67 #include "cc/resources/zero_copy_tile_task_worker_pool.h" 66 #include "cc/resources/zero_copy_tile_task_worker_pool.h"
68 #include "cc/scheduler/delay_based_time_source.h" 67 #include "cc/scheduler/delay_based_time_source.h"
69 #include "cc/trees/damage_tracker.h" 68 #include "cc/trees/damage_tracker.h"
70 #include "cc/trees/latency_info_swap_promise_monitor.h" 69 #include "cc/trees/latency_info_swap_promise_monitor.h"
71 #include "cc/trees/layer_tree_host.h" 70 #include "cc/trees/layer_tree_host.h"
72 #include "cc/trees/layer_tree_host_common.h" 71 #include "cc/trees/layer_tree_host_common.h"
73 #include "cc/trees/layer_tree_impl.h" 72 #include "cc/trees/layer_tree_impl.h"
(...skipping 1918 matching lines...) Expand 10 before | Expand all | Expand 10 after
1992 pending_tree_->set_needs_update_draw_properties(); 1991 pending_tree_->set_needs_update_draw_properties();
1993 client_->UpdateRendererCapabilitiesOnImplThread(); 1992 client_->UpdateRendererCapabilitiesOnImplThread();
1994 } 1993 }
1995 1994
1996 void LayerTreeHostImpl::CreateAndSetTileManager() { 1995 void LayerTreeHostImpl::CreateAndSetTileManager() {
1997 DCHECK(!tile_manager_); 1996 DCHECK(!tile_manager_);
1998 DCHECK(settings_.impl_side_painting); 1997 DCHECK(settings_.impl_side_painting);
1999 DCHECK(output_surface_); 1998 DCHECK(output_surface_);
2000 DCHECK(resource_provider_); 1999 DCHECK(resource_provider_);
2001 2000
2002 rasterizer_ = CreateRasterizer();
2003 CreateResourceAndTileTaskWorkerPool(&tile_task_worker_pool_, &resource_pool_, 2001 CreateResourceAndTileTaskWorkerPool(&tile_task_worker_pool_, &resource_pool_,
2004 &staging_resource_pool_); 2002 &staging_resource_pool_);
2005 DCHECK(tile_task_worker_pool_); 2003 DCHECK(tile_task_worker_pool_);
2006 DCHECK(resource_pool_); 2004 DCHECK(resource_pool_);
2007 2005
2008 base::SingleThreadTaskRunner* task_runner = 2006 base::SingleThreadTaskRunner* task_runner =
2009 proxy_->HasImplThread() ? proxy_->ImplThreadTaskRunner() 2007 proxy_->HasImplThread() ? proxy_->ImplThreadTaskRunner()
2010 : proxy_->MainThreadTaskRunner(); 2008 : proxy_->MainThreadTaskRunner();
2011 DCHECK(task_runner); 2009 DCHECK(task_runner);
2012 size_t scheduled_raster_task_limit = 2010 size_t scheduled_raster_task_limit =
2013 IsSynchronousSingleThreaded() ? std::numeric_limits<size_t>::max() 2011 IsSynchronousSingleThreaded() ? std::numeric_limits<size_t>::max()
2014 : settings_.scheduled_raster_task_limit; 2012 : settings_.scheduled_raster_task_limit;
2015 tile_manager_ = 2013 tile_manager_ = TileManager::Create(
2016 TileManager::Create(this, task_runner, resource_pool_.get(), 2014 this, task_runner, resource_pool_.get(),
2017 tile_task_worker_pool_->AsTileTaskRunner(), 2015 tile_task_worker_pool_->AsTileTaskRunner(), scheduled_raster_task_limit);
2018 rasterizer_.get(), scheduled_raster_task_limit);
2019 2016
2020 UpdateTileManagerMemoryPolicy(ActualManagedMemoryPolicy()); 2017 UpdateTileManagerMemoryPolicy(ActualManagedMemoryPolicy());
2021 } 2018 }
2022 2019
2023 scoped_ptr<Rasterizer> LayerTreeHostImpl::CreateRasterizer() {
2024 ContextProvider* context_provider = output_surface_->context_provider();
2025 if (use_gpu_rasterization_ && context_provider) {
2026 return GpuRasterizer::Create(context_provider, resource_provider_.get(),
2027 settings_.use_distance_field_text,
2028 settings_.threaded_gpu_rasterization_enabled,
2029 settings_.gpu_rasterization_msaa_sample_count);
2030 }
2031 return SoftwareRasterizer::Create();
2032 }
2033
2034 void LayerTreeHostImpl::CreateResourceAndTileTaskWorkerPool( 2020 void LayerTreeHostImpl::CreateResourceAndTileTaskWorkerPool(
2035 scoped_ptr<TileTaskWorkerPool>* tile_task_worker_pool, 2021 scoped_ptr<TileTaskWorkerPool>* tile_task_worker_pool,
2036 scoped_ptr<ResourcePool>* resource_pool, 2022 scoped_ptr<ResourcePool>* resource_pool,
2037 scoped_ptr<ResourcePool>* staging_resource_pool) { 2023 scoped_ptr<ResourcePool>* staging_resource_pool) {
2038 base::SingleThreadTaskRunner* task_runner = 2024 base::SingleThreadTaskRunner* task_runner =
2039 proxy_->HasImplThread() ? proxy_->ImplThreadTaskRunner() 2025 proxy_->HasImplThread() ? proxy_->ImplThreadTaskRunner()
2040 : proxy_->MainThreadTaskRunner(); 2026 : proxy_->MainThreadTaskRunner();
2041 DCHECK(task_runner); 2027 DCHECK(task_runner);
2042 2028
2043 ContextProvider* context_provider = output_surface_->context_provider(); 2029 ContextProvider* context_provider = output_surface_->context_provider();
(...skipping 13 matching lines...) Expand all
2057 DCHECK(!single_thread_synchronous_task_graph_runner_); 2043 DCHECK(!single_thread_synchronous_task_graph_runner_);
2058 single_thread_synchronous_task_graph_runner_.reset(new TaskGraphRunner); 2044 single_thread_synchronous_task_graph_runner_.reset(new TaskGraphRunner);
2059 task_graph_runner = single_thread_synchronous_task_graph_runner_.get(); 2045 task_graph_runner = single_thread_synchronous_task_graph_runner_.get();
2060 } 2046 }
2061 2047
2062 if (use_gpu_rasterization_) { 2048 if (use_gpu_rasterization_) {
2063 *resource_pool = 2049 *resource_pool =
2064 ResourcePool::Create(resource_provider_.get(), GL_TEXTURE_2D); 2050 ResourcePool::Create(resource_provider_.get(), GL_TEXTURE_2D);
2065 2051
2066 *tile_task_worker_pool = GpuTileTaskWorkerPool::Create( 2052 *tile_task_worker_pool = GpuTileTaskWorkerPool::Create(
2067 task_runner, task_graph_runner, 2053 task_runner, task_graph_runner, context_provider,
2068 static_cast<GpuRasterizer*>(rasterizer_.get())); 2054 resource_provider_.get(), settings_.use_distance_field_text,
2055 settings_.gpu_rasterization_msaa_sample_count);
2069 return; 2056 return;
2070 } 2057 }
2071 2058
2072 if (GetRendererCapabilities().using_image) { 2059 if (GetRendererCapabilities().using_image) {
2073 unsigned image_target = settings_.use_image_texture_target; 2060 unsigned image_target = settings_.use_image_texture_target;
2074 DCHECK_IMPLIES( 2061 DCHECK_IMPLIES(
2075 image_target == GL_TEXTURE_RECTANGLE_ARB, 2062 image_target == GL_TEXTURE_RECTANGLE_ARB,
2076 context_provider->ContextCapabilities().gpu.texture_rectangle); 2063 context_provider->ContextCapabilities().gpu.texture_rectangle);
2077 DCHECK_IMPLIES( 2064 DCHECK_IMPLIES(
2078 image_target == GL_TEXTURE_EXTERNAL_OES, 2065 image_target == GL_TEXTURE_EXTERNAL_OES,
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
2114 resource_provider_.get(), 2101 resource_provider_.get(),
2115 GetMaxTransferBufferUsageBytes(context_provider->ContextCapabilities(), 2102 GetMaxTransferBufferUsageBytes(context_provider->ContextCapabilities(),
2116 settings_.renderer_settings.refresh_rate)); 2103 settings_.renderer_settings.refresh_rate));
2117 } 2104 }
2118 2105
2119 void LayerTreeHostImpl::DestroyTileManager() { 2106 void LayerTreeHostImpl::DestroyTileManager() {
2120 tile_manager_ = nullptr; 2107 tile_manager_ = nullptr;
2121 resource_pool_ = nullptr; 2108 resource_pool_ = nullptr;
2122 staging_resource_pool_ = nullptr; 2109 staging_resource_pool_ = nullptr;
2123 tile_task_worker_pool_ = nullptr; 2110 tile_task_worker_pool_ = nullptr;
2124 rasterizer_ = nullptr;
2125 single_thread_synchronous_task_graph_runner_ = nullptr; 2111 single_thread_synchronous_task_graph_runner_ = nullptr;
2126 } 2112 }
2127 2113
2128 bool LayerTreeHostImpl::IsSynchronousSingleThreaded() const { 2114 bool LayerTreeHostImpl::IsSynchronousSingleThreaded() const {
2129 return !proxy_->HasImplThread() && !settings_.single_thread_proxy_scheduler; 2115 return !proxy_->HasImplThread() && !settings_.single_thread_proxy_scheduler;
2130 } 2116 }
2131 2117
2132 void LayerTreeHostImpl::EnforceZeroBudget(bool zero_budget) { 2118 void LayerTreeHostImpl::EnforceZeroBudget(bool zero_budget) {
2133 SetManagedMemoryPolicy(cached_managed_memory_policy_, zero_budget); 2119 SetManagedMemoryPolicy(cached_managed_memory_policy_, zero_budget);
2134 } 2120 }
(...skipping 1291 matching lines...) Expand 10 before | Expand all | Expand 10 after
3426 new_target.SetToMin(layer_impl->MaxScrollOffset()); 3412 new_target.SetToMin(layer_impl->MaxScrollOffset());
3427 3413
3428 curve->UpdateTarget( 3414 curve->UpdateTarget(
3429 animation->TrimTimeToCurrentIteration(CurrentBeginFrameArgs().frame_time) 3415 animation->TrimTimeToCurrentIteration(CurrentBeginFrameArgs().frame_time)
3430 .InSecondsF(), 3416 .InSecondsF(),
3431 new_target); 3417 new_target);
3432 3418
3433 return true; 3419 return true;
3434 } 3420 }
3435 } // namespace cc 3421 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698