| OLD | NEW |
| 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 29 matching lines...) Expand all Loading... |
| 40 #include "cc/layers/scrollbar_layer_impl_base.h" | 40 #include "cc/layers/scrollbar_layer_impl_base.h" |
| 41 #include "cc/output/compositor_frame_metadata.h" | 41 #include "cc/output/compositor_frame_metadata.h" |
| 42 #include "cc/output/copy_output_request.h" | 42 #include "cc/output/copy_output_request.h" |
| 43 #include "cc/output/delegating_renderer.h" | 43 #include "cc/output/delegating_renderer.h" |
| 44 #include "cc/output/gl_renderer.h" | 44 #include "cc/output/gl_renderer.h" |
| 45 #include "cc/output/software_renderer.h" | 45 #include "cc/output/software_renderer.h" |
| 46 #include "cc/quads/render_pass_draw_quad.h" | 46 #include "cc/quads/render_pass_draw_quad.h" |
| 47 #include "cc/quads/shared_quad_state.h" | 47 #include "cc/quads/shared_quad_state.h" |
| 48 #include "cc/quads/solid_color_draw_quad.h" | 48 #include "cc/quads/solid_color_draw_quad.h" |
| 49 #include "cc/quads/texture_draw_quad.h" | 49 #include "cc/quads/texture_draw_quad.h" |
| 50 #include "cc/resources/bitmap_raster_worker_pool.h" | 50 #include "cc/resources/bitmap_tile_task_worker_pool.h" |
| 51 #include "cc/resources/eviction_tile_priority_queue.h" | 51 #include "cc/resources/eviction_tile_priority_queue.h" |
| 52 #include "cc/resources/gpu_raster_worker_pool.h" | 52 #include "cc/resources/gpu_tile_task_worker_pool.h" |
| 53 #include "cc/resources/memory_history.h" | 53 #include "cc/resources/memory_history.h" |
| 54 #include "cc/resources/one_copy_raster_worker_pool.h" | 54 #include "cc/resources/one_copy_tile_task_worker_pool.h" |
| 55 #include "cc/resources/picture_layer_tiling.h" | 55 #include "cc/resources/picture_layer_tiling.h" |
| 56 #include "cc/resources/pixel_buffer_raster_worker_pool.h" | 56 #include "cc/resources/pixel_buffer_tile_task_worker_pool.h" |
| 57 #include "cc/resources/prioritized_resource_manager.h" | 57 #include "cc/resources/prioritized_resource_manager.h" |
| 58 #include "cc/resources/raster_tile_priority_queue.h" | 58 #include "cc/resources/raster_tile_priority_queue.h" |
| 59 #include "cc/resources/raster_worker_pool.h" | |
| 60 #include "cc/resources/resource_pool.h" | 59 #include "cc/resources/resource_pool.h" |
| 61 #include "cc/resources/texture_mailbox_deleter.h" | 60 #include "cc/resources/texture_mailbox_deleter.h" |
| 61 #include "cc/resources/tile_task_worker_pool.h" |
| 62 #include "cc/resources/ui_resource_bitmap.h" | 62 #include "cc/resources/ui_resource_bitmap.h" |
| 63 #include "cc/resources/zero_copy_raster_worker_pool.h" | 63 #include "cc/resources/zero_copy_tile_task_worker_pool.h" |
| 64 #include "cc/scheduler/delay_based_time_source.h" | 64 #include "cc/scheduler/delay_based_time_source.h" |
| 65 #include "cc/trees/damage_tracker.h" | 65 #include "cc/trees/damage_tracker.h" |
| 66 #include "cc/trees/layer_tree_host.h" | 66 #include "cc/trees/layer_tree_host.h" |
| 67 #include "cc/trees/layer_tree_host_common.h" | 67 #include "cc/trees/layer_tree_host_common.h" |
| 68 #include "cc/trees/layer_tree_impl.h" | 68 #include "cc/trees/layer_tree_impl.h" |
| 69 #include "cc/trees/occlusion_tracker.h" | 69 #include "cc/trees/occlusion_tracker.h" |
| 70 #include "cc/trees/single_thread_proxy.h" | 70 #include "cc/trees/single_thread_proxy.h" |
| 71 #include "cc/trees/tree_synchronizer.h" | 71 #include "cc/trees/tree_synchronizer.h" |
| 72 #include "gpu/command_buffer/client/gles2_interface.h" | 72 #include "gpu/command_buffer/client/gles2_interface.h" |
| 73 #include "gpu/GLES2/gl2extchromium.h" | 73 #include "gpu/GLES2/gl2extchromium.h" |
| (...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 302 pending_tree_->ApplyScrollDeltasSinceBeginMainFrame(); | 302 pending_tree_->ApplyScrollDeltasSinceBeginMainFrame(); |
| 303 sync_tree()->set_needs_update_draw_properties(); | 303 sync_tree()->set_needs_update_draw_properties(); |
| 304 | 304 |
| 305 if (settings_.impl_side_painting) { | 305 if (settings_.impl_side_painting) { |
| 306 // Impl-side painting needs an update immediately post-commit to have the | 306 // Impl-side painting needs an update immediately post-commit to have the |
| 307 // opportunity to create tilings. Other paths can call UpdateDrawProperties | 307 // opportunity to create tilings. Other paths can call UpdateDrawProperties |
| 308 // more lazily when needed prior to drawing. | 308 // more lazily when needed prior to drawing. |
| 309 sync_tree()->UpdateDrawProperties(); | 309 sync_tree()->UpdateDrawProperties(); |
| 310 // Start working on newly created tiles immediately if needed. | 310 // Start working on newly created tiles immediately if needed. |
| 311 if (tile_manager_ && tile_priorities_dirty_) | 311 if (tile_manager_ && tile_priorities_dirty_) |
| 312 ManageTiles(); | 312 PrepareTiles(); |
| 313 else | 313 else |
| 314 NotifyReadyToActivate(); | 314 NotifyReadyToActivate(); |
| 315 } else { | 315 } else { |
| 316 // If we're not in impl-side painting, the tree is immediately considered | 316 // If we're not in impl-side painting, the tree is immediately considered |
| 317 // active. | 317 // active. |
| 318 ActivateSyncTree(); | 318 ActivateSyncTree(); |
| 319 } | 319 } |
| 320 | 320 |
| 321 micro_benchmark_controller_.DidCompleteCommit(); | 321 micro_benchmark_controller_.DidCompleteCommit(); |
| 322 } | 322 } |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 375 | 375 |
| 376 void LayerTreeHostImpl::Animate(base::TimeTicks monotonic_time) { | 376 void LayerTreeHostImpl::Animate(base::TimeTicks monotonic_time) { |
| 377 if (input_handler_client_) | 377 if (input_handler_client_) |
| 378 input_handler_client_->Animate(monotonic_time); | 378 input_handler_client_->Animate(monotonic_time); |
| 379 AnimatePageScale(monotonic_time); | 379 AnimatePageScale(monotonic_time); |
| 380 AnimateLayers(monotonic_time); | 380 AnimateLayers(monotonic_time); |
| 381 AnimateScrollbars(monotonic_time); | 381 AnimateScrollbars(monotonic_time); |
| 382 AnimateTopControls(monotonic_time); | 382 AnimateTopControls(monotonic_time); |
| 383 } | 383 } |
| 384 | 384 |
| 385 void LayerTreeHostImpl::ManageTiles() { | 385 void LayerTreeHostImpl::PrepareTiles() { |
| 386 if (!tile_manager_) | 386 if (!tile_manager_) |
| 387 return; | 387 return; |
| 388 if (!tile_priorities_dirty_) | 388 if (!tile_priorities_dirty_) |
| 389 return; | 389 return; |
| 390 | 390 |
| 391 tile_priorities_dirty_ = false; | 391 tile_priorities_dirty_ = false; |
| 392 tile_manager_->ManageTiles(global_tile_state_); | 392 tile_manager_->PrepareTiles(global_tile_state_); |
| 393 | 393 |
| 394 client_->DidManageTiles(); | 394 client_->DidPrepareTiles(); |
| 395 } | 395 } |
| 396 | 396 |
| 397 void LayerTreeHostImpl::StartPageScaleAnimation( | 397 void LayerTreeHostImpl::StartPageScaleAnimation( |
| 398 const gfx::Vector2d& target_offset, | 398 const gfx::Vector2d& target_offset, |
| 399 bool anchor_point, | 399 bool anchor_point, |
| 400 float page_scale, | 400 float page_scale, |
| 401 base::TimeDelta duration) { | 401 base::TimeDelta duration) { |
| 402 if (!InnerViewportScrollLayer()) | 402 if (!InnerViewportScrollLayer()) |
| 403 return; | 403 return; |
| 404 | 404 |
| (...skipping 774 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1179 std::numeric_limits<size_t>::max(), | 1179 std::numeric_limits<size_t>::max(), |
| 1180 std::numeric_limits<size_t>::max(), | 1180 std::numeric_limits<size_t>::max(), |
| 1181 visible_ ? GetMaxStagingResourceCount() : 0); | 1181 visible_ ? GetMaxStagingResourceCount() : 0); |
| 1182 } | 1182 } |
| 1183 | 1183 |
| 1184 DidModifyTilePriorities(); | 1184 DidModifyTilePriorities(); |
| 1185 } | 1185 } |
| 1186 | 1186 |
| 1187 void LayerTreeHostImpl::DidModifyTilePriorities() { | 1187 void LayerTreeHostImpl::DidModifyTilePriorities() { |
| 1188 DCHECK(settings_.impl_side_painting); | 1188 DCHECK(settings_.impl_side_painting); |
| 1189 // Mark priorities as dirty and schedule a ManageTiles(). | 1189 // Mark priorities as dirty and schedule a PrepareTiles(). |
| 1190 tile_priorities_dirty_ = true; | 1190 tile_priorities_dirty_ = true; |
| 1191 client_->SetNeedsManageTilesOnImplThread(); | 1191 client_->SetNeedsPrepareTilesOnImplThread(); |
| 1192 } | 1192 } |
| 1193 | 1193 |
| 1194 void LayerTreeHostImpl::GetPictureLayerImplPairs( | 1194 void LayerTreeHostImpl::GetPictureLayerImplPairs( |
| 1195 std::vector<PictureLayerImpl::Pair>* layer_pairs, | 1195 std::vector<PictureLayerImpl::Pair>* layer_pairs, |
| 1196 bool need_valid_tile_priorities) const { | 1196 bool need_valid_tile_priorities) const { |
| 1197 DCHECK(layer_pairs->empty()); | 1197 DCHECK(layer_pairs->empty()); |
| 1198 for (std::vector<PictureLayerImpl*>::const_iterator it = | 1198 for (std::vector<PictureLayerImpl*>::const_iterator it = |
| 1199 picture_layers_.begin(); | 1199 picture_layers_.begin(); |
| 1200 it != picture_layers_.end(); | 1200 it != picture_layers_.end(); |
| 1201 ++it) { | 1201 ++it) { |
| (...skipping 648 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1850 // If we just became visible, we have to ensure that we draw high res tiles, | 1850 // If we just became visible, we have to ensure that we draw high res tiles, |
| 1851 // to prevent checkerboard/low res flashes. | 1851 // to prevent checkerboard/low res flashes. |
| 1852 if (visible_) | 1852 if (visible_) |
| 1853 SetRequiresHighResToDraw(); | 1853 SetRequiresHighResToDraw(); |
| 1854 else | 1854 else |
| 1855 EvictAllUIResources(); | 1855 EvictAllUIResources(); |
| 1856 | 1856 |
| 1857 // Evict tiles immediately if invisible since this tab may never get another | 1857 // Evict tiles immediately if invisible since this tab may never get another |
| 1858 // draw or timer tick. | 1858 // draw or timer tick. |
| 1859 if (!visible_) | 1859 if (!visible_) |
| 1860 ManageTiles(); | 1860 PrepareTiles(); |
| 1861 | 1861 |
| 1862 if (!renderer_) | 1862 if (!renderer_) |
| 1863 return; | 1863 return; |
| 1864 | 1864 |
| 1865 renderer_->SetVisible(visible); | 1865 renderer_->SetVisible(visible); |
| 1866 } | 1866 } |
| 1867 | 1867 |
| 1868 void LayerTreeHostImpl::SetNeedsAnimate() { | 1868 void LayerTreeHostImpl::SetNeedsAnimate() { |
| 1869 NotifySwapPromiseMonitorsOfSetNeedsRedraw(); | 1869 NotifySwapPromiseMonitorsOfSetNeedsRedraw(); |
| 1870 client_->SetNeedsAnimateOnImplThread(); | 1870 client_->SetNeedsAnimateOnImplThread(); |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1943 pending_tree_->set_needs_update_draw_properties(); | 1943 pending_tree_->set_needs_update_draw_properties(); |
| 1944 client_->UpdateRendererCapabilitiesOnImplThread(); | 1944 client_->UpdateRendererCapabilitiesOnImplThread(); |
| 1945 } | 1945 } |
| 1946 | 1946 |
| 1947 void LayerTreeHostImpl::CreateAndSetTileManager() { | 1947 void LayerTreeHostImpl::CreateAndSetTileManager() { |
| 1948 DCHECK(!tile_manager_); | 1948 DCHECK(!tile_manager_); |
| 1949 DCHECK(settings_.impl_side_painting); | 1949 DCHECK(settings_.impl_side_painting); |
| 1950 DCHECK(output_surface_); | 1950 DCHECK(output_surface_); |
| 1951 DCHECK(resource_provider_); | 1951 DCHECK(resource_provider_); |
| 1952 | 1952 |
| 1953 CreateResourceAndRasterWorkerPool( | 1953 CreateResourceAndTileTaskWorkerPool(&tile_task_worker_pool_, &resource_pool_, |
| 1954 &raster_worker_pool_, &resource_pool_, &staging_resource_pool_); | 1954 &staging_resource_pool_); |
| 1955 DCHECK(raster_worker_pool_); | 1955 DCHECK(tile_task_worker_pool_); |
| 1956 DCHECK(resource_pool_); | 1956 DCHECK(resource_pool_); |
| 1957 | 1957 |
| 1958 base::SingleThreadTaskRunner* task_runner = | 1958 base::SingleThreadTaskRunner* task_runner = |
| 1959 proxy_->HasImplThread() ? proxy_->ImplThreadTaskRunner() | 1959 proxy_->HasImplThread() ? proxy_->ImplThreadTaskRunner() |
| 1960 : proxy_->MainThreadTaskRunner(); | 1960 : proxy_->MainThreadTaskRunner(); |
| 1961 DCHECK(task_runner); | 1961 DCHECK(task_runner); |
| 1962 size_t scheduled_raster_task_limit = | 1962 size_t scheduled_raster_task_limit = |
| 1963 IsSynchronousSingleThreaded() ? std::numeric_limits<size_t>::max() | 1963 IsSynchronousSingleThreaded() ? std::numeric_limits<size_t>::max() |
| 1964 : settings_.scheduled_raster_task_limit; | 1964 : settings_.scheduled_raster_task_limit; |
| 1965 tile_manager_ = TileManager::Create(this, | 1965 tile_manager_ = TileManager::Create( |
| 1966 task_runner, | 1966 this, task_runner, resource_pool_.get(), |
| 1967 resource_pool_.get(), | 1967 tile_task_worker_pool_->AsTileTaskRunner(), |
| 1968 raster_worker_pool_->AsRasterizer(), | 1968 rendering_stats_instrumentation_, scheduled_raster_task_limit); |
| 1969 rendering_stats_instrumentation_, | |
| 1970 scheduled_raster_task_limit); | |
| 1971 | 1969 |
| 1972 UpdateTileManagerMemoryPolicy(ActualManagedMemoryPolicy()); | 1970 UpdateTileManagerMemoryPolicy(ActualManagedMemoryPolicy()); |
| 1973 } | 1971 } |
| 1974 | 1972 |
| 1975 void LayerTreeHostImpl::CreateResourceAndRasterWorkerPool( | 1973 void LayerTreeHostImpl::CreateResourceAndTileTaskWorkerPool( |
| 1976 scoped_ptr<RasterWorkerPool>* raster_worker_pool, | 1974 scoped_ptr<TileTaskWorkerPool>* tile_task_worker_pool, |
| 1977 scoped_ptr<ResourcePool>* resource_pool, | 1975 scoped_ptr<ResourcePool>* resource_pool, |
| 1978 scoped_ptr<ResourcePool>* staging_resource_pool) { | 1976 scoped_ptr<ResourcePool>* staging_resource_pool) { |
| 1979 base::SingleThreadTaskRunner* task_runner = | 1977 base::SingleThreadTaskRunner* task_runner = |
| 1980 proxy_->HasImplThread() ? proxy_->ImplThreadTaskRunner() | 1978 proxy_->HasImplThread() ? proxy_->ImplThreadTaskRunner() |
| 1981 : proxy_->MainThreadTaskRunner(); | 1979 : proxy_->MainThreadTaskRunner(); |
| 1982 DCHECK(task_runner); | 1980 DCHECK(task_runner); |
| 1983 | 1981 |
| 1984 ContextProvider* context_provider = output_surface_->context_provider(); | 1982 ContextProvider* context_provider = output_surface_->context_provider(); |
| 1985 if (!context_provider) { | 1983 if (!context_provider) { |
| 1986 *resource_pool = | 1984 *resource_pool = |
| 1987 ResourcePool::Create(resource_provider_.get(), | 1985 ResourcePool::Create(resource_provider_.get(), |
| 1988 GL_TEXTURE_2D, | 1986 GL_TEXTURE_2D, |
| 1989 resource_provider_->best_texture_format()); | 1987 resource_provider_->best_texture_format()); |
| 1990 | 1988 |
| 1991 *raster_worker_pool = | 1989 *tile_task_worker_pool = BitmapTileTaskWorkerPool::Create( |
| 1992 BitmapRasterWorkerPool::Create(task_runner, | 1990 task_runner, TileTaskWorkerPool::GetTaskGraphRunner(), |
| 1993 RasterWorkerPool::GetTaskGraphRunner(), | 1991 resource_provider_.get()); |
| 1994 resource_provider_.get()); | |
| 1995 return; | 1992 return; |
| 1996 } | 1993 } |
| 1997 | 1994 |
| 1998 if (use_gpu_rasterization_) { | 1995 if (use_gpu_rasterization_) { |
| 1999 *resource_pool = | 1996 *resource_pool = |
| 2000 ResourcePool::Create(resource_provider_.get(), | 1997 ResourcePool::Create(resource_provider_.get(), |
| 2001 GL_TEXTURE_2D, | 1998 GL_TEXTURE_2D, |
| 2002 resource_provider_->best_texture_format()); | 1999 resource_provider_->best_texture_format()); |
| 2003 | 2000 |
| 2004 *raster_worker_pool = | 2001 *tile_task_worker_pool = GpuTileTaskWorkerPool::Create( |
| 2005 GpuRasterWorkerPool::Create(task_runner, | 2002 task_runner, context_provider, resource_provider_.get(), |
| 2006 context_provider, | 2003 settings_.use_distance_field_text); |
| 2007 resource_provider_.get(), | |
| 2008 settings_.use_distance_field_text); | |
| 2009 return; | 2004 return; |
| 2010 } | 2005 } |
| 2011 | 2006 |
| 2012 if (GetRendererCapabilities().using_image) { | 2007 if (GetRendererCapabilities().using_image) { |
| 2013 unsigned image_target = settings_.use_image_texture_target; | 2008 unsigned image_target = settings_.use_image_texture_target; |
| 2014 DCHECK_IMPLIES( | 2009 DCHECK_IMPLIES( |
| 2015 image_target == GL_TEXTURE_RECTANGLE_ARB, | 2010 image_target == GL_TEXTURE_RECTANGLE_ARB, |
| 2016 context_provider->ContextCapabilities().gpu.texture_rectangle); | 2011 context_provider->ContextCapabilities().gpu.texture_rectangle); |
| 2017 DCHECK_IMPLIES( | 2012 DCHECK_IMPLIES( |
| 2018 image_target == GL_TEXTURE_EXTERNAL_OES, | 2013 image_target == GL_TEXTURE_EXTERNAL_OES, |
| 2019 context_provider->ContextCapabilities().gpu.egl_image_external); | 2014 context_provider->ContextCapabilities().gpu.egl_image_external); |
| 2020 | 2015 |
| 2021 if (settings_.use_zero_copy || IsSynchronousSingleThreaded()) { | 2016 if (settings_.use_zero_copy || IsSynchronousSingleThreaded()) { |
| 2022 *resource_pool = | 2017 *resource_pool = |
| 2023 ResourcePool::Create(resource_provider_.get(), image_target, | 2018 ResourcePool::Create(resource_provider_.get(), image_target, |
| 2024 resource_provider_->best_texture_format()); | 2019 resource_provider_->best_texture_format()); |
| 2025 | 2020 |
| 2026 TaskGraphRunner* task_graph_runner; | 2021 TaskGraphRunner* task_graph_runner; |
| 2027 if (IsSynchronousSingleThreaded()) { | 2022 if (IsSynchronousSingleThreaded()) { |
| 2028 DCHECK(!single_thread_synchronous_task_graph_runner_); | 2023 DCHECK(!single_thread_synchronous_task_graph_runner_); |
| 2029 single_thread_synchronous_task_graph_runner_.reset(new TaskGraphRunner); | 2024 single_thread_synchronous_task_graph_runner_.reset(new TaskGraphRunner); |
| 2030 task_graph_runner = single_thread_synchronous_task_graph_runner_.get(); | 2025 task_graph_runner = single_thread_synchronous_task_graph_runner_.get(); |
| 2031 } else { | 2026 } else { |
| 2032 task_graph_runner = RasterWorkerPool::GetTaskGraphRunner(); | 2027 task_graph_runner = TileTaskWorkerPool::GetTaskGraphRunner(); |
| 2033 } | 2028 } |
| 2034 | 2029 |
| 2035 *raster_worker_pool = ZeroCopyRasterWorkerPool::Create( | 2030 *tile_task_worker_pool = ZeroCopyTileTaskWorkerPool::Create( |
| 2036 task_runner, task_graph_runner, resource_provider_.get()); | 2031 task_runner, task_graph_runner, resource_provider_.get()); |
| 2037 return; | 2032 return; |
| 2038 } | 2033 } |
| 2039 | 2034 |
| 2040 if (settings_.use_one_copy) { | 2035 if (settings_.use_one_copy) { |
| 2041 // We need to create a staging resource pool when using copy rasterizer. | 2036 // We need to create a staging resource pool when using copy rasterizer. |
| 2042 *staging_resource_pool = | 2037 *staging_resource_pool = |
| 2043 ResourcePool::Create(resource_provider_.get(), image_target, | 2038 ResourcePool::Create(resource_provider_.get(), image_target, |
| 2044 resource_provider_->best_texture_format()); | 2039 resource_provider_->best_texture_format()); |
| 2045 *resource_pool = | 2040 *resource_pool = |
| 2046 ResourcePool::Create(resource_provider_.get(), GL_TEXTURE_2D, | 2041 ResourcePool::Create(resource_provider_.get(), GL_TEXTURE_2D, |
| 2047 resource_provider_->best_texture_format()); | 2042 resource_provider_->best_texture_format()); |
| 2048 | 2043 |
| 2049 *raster_worker_pool = OneCopyRasterWorkerPool::Create( | 2044 *tile_task_worker_pool = OneCopyTileTaskWorkerPool::Create( |
| 2050 task_runner, RasterWorkerPool::GetTaskGraphRunner(), context_provider, | 2045 task_runner, TileTaskWorkerPool::GetTaskGraphRunner(), |
| 2051 resource_provider_.get(), staging_resource_pool_.get()); | 2046 context_provider, resource_provider_.get(), |
| 2047 staging_resource_pool_.get()); |
| 2052 return; | 2048 return; |
| 2053 } | 2049 } |
| 2054 } | 2050 } |
| 2055 | 2051 |
| 2056 *resource_pool = ResourcePool::Create( | 2052 *resource_pool = ResourcePool::Create( |
| 2057 resource_provider_.get(), GL_TEXTURE_2D, | 2053 resource_provider_.get(), GL_TEXTURE_2D, |
| 2058 resource_provider_->memory_efficient_texture_format()); | 2054 resource_provider_->memory_efficient_texture_format()); |
| 2059 | 2055 |
| 2060 *raster_worker_pool = PixelBufferRasterWorkerPool::Create( | 2056 *tile_task_worker_pool = PixelBufferTileTaskWorkerPool::Create( |
| 2061 task_runner, RasterWorkerPool::GetTaskGraphRunner(), context_provider, | 2057 task_runner, TileTaskWorkerPool::GetTaskGraphRunner(), context_provider, |
| 2062 resource_provider_.get(), | 2058 resource_provider_.get(), |
| 2063 GetMaxTransferBufferUsageBytes(context_provider->ContextCapabilities(), | 2059 GetMaxTransferBufferUsageBytes(context_provider->ContextCapabilities(), |
| 2064 settings_.renderer_settings.refresh_rate)); | 2060 settings_.renderer_settings.refresh_rate)); |
| 2065 } | 2061 } |
| 2066 | 2062 |
| 2067 void LayerTreeHostImpl::DestroyTileManager() { | 2063 void LayerTreeHostImpl::DestroyTileManager() { |
| 2068 tile_manager_ = nullptr; | 2064 tile_manager_ = nullptr; |
| 2069 resource_pool_ = nullptr; | 2065 resource_pool_ = nullptr; |
| 2070 staging_resource_pool_ = nullptr; | 2066 staging_resource_pool_ = nullptr; |
| 2071 raster_worker_pool_ = nullptr; | 2067 tile_task_worker_pool_ = nullptr; |
| 2072 single_thread_synchronous_task_graph_runner_ = nullptr; | 2068 single_thread_synchronous_task_graph_runner_ = nullptr; |
| 2073 } | 2069 } |
| 2074 | 2070 |
| 2075 bool LayerTreeHostImpl::UsePendingTreeForSync() const { | 2071 bool LayerTreeHostImpl::UsePendingTreeForSync() const { |
| 2076 // In impl-side painting, synchronize to the pending tree so that it has | 2072 // In impl-side painting, synchronize to the pending tree so that it has |
| 2077 // time to raster before being displayed. | 2073 // time to raster before being displayed. |
| 2078 return settings_.impl_side_painting; | 2074 return settings_.impl_side_painting; |
| 2079 } | 2075 } |
| 2080 | 2076 |
| 2081 bool LayerTreeHostImpl::IsSynchronousSingleThreaded() const { | 2077 bool LayerTreeHostImpl::IsSynchronousSingleThreaded() const { |
| (...skipping 1402 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3484 } | 3480 } |
| 3485 | 3481 |
| 3486 void LayerTreeHostImpl::UnregisterPictureLayerImpl(PictureLayerImpl* layer) { | 3482 void LayerTreeHostImpl::UnregisterPictureLayerImpl(PictureLayerImpl* layer) { |
| 3487 std::vector<PictureLayerImpl*>::iterator it = | 3483 std::vector<PictureLayerImpl*>::iterator it = |
| 3488 std::find(picture_layers_.begin(), picture_layers_.end(), layer); | 3484 std::find(picture_layers_.begin(), picture_layers_.end(), layer); |
| 3489 DCHECK(it != picture_layers_.end()); | 3485 DCHECK(it != picture_layers_.end()); |
| 3490 picture_layers_.erase(it); | 3486 picture_layers_.erase(it); |
| 3491 } | 3487 } |
| 3492 | 3488 |
| 3493 } // namespace cc | 3489 } // namespace cc |
| OLD | NEW |