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 #include <map> | 9 #include <map> |
10 #include <set> | 10 #include <set> |
(...skipping 2096 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2107 use_msaa_ ? settings_.gpu_rasterization_msaa_sample_count : 0; | 2107 use_msaa_ ? settings_.gpu_rasterization_msaa_sample_count : 0; |
2108 | 2108 |
2109 *tile_task_worker_pool = GpuTileTaskWorkerPool::Create( | 2109 *tile_task_worker_pool = GpuTileTaskWorkerPool::Create( |
2110 GetTaskRunner(), task_graph_runner, context_provider, | 2110 GetTaskRunner(), task_graph_runner, context_provider, |
2111 resource_provider_.get(), settings_.use_distance_field_text, | 2111 resource_provider_.get(), settings_.use_distance_field_text, |
2112 msaa_sample_count); | 2112 msaa_sample_count); |
2113 return; | 2113 return; |
2114 } | 2114 } |
2115 | 2115 |
2116 DCHECK(GetRendererCapabilities().using_image); | 2116 DCHECK(GetRendererCapabilities().using_image); |
2117 unsigned image_target = settings_.use_image_texture_target; | |
2118 DCHECK_IMPLIES(image_target == GL_TEXTURE_RECTANGLE_ARB, | |
2119 context_provider->ContextCapabilities().gpu.texture_rectangle); | |
2120 DCHECK_IMPLIES( | |
2121 image_target == GL_TEXTURE_EXTERNAL_OES, | |
2122 context_provider->ContextCapabilities().gpu.egl_image_external); | |
2123 | 2117 |
2124 if (settings_.use_zero_copy) { | 2118 if (settings_.use_zero_copy) { |
2125 *resource_pool = | 2119 *resource_pool = ResourcePool::Create(resource_provider_.get()); |
2126 ResourcePool::Create(resource_provider_.get(), image_target); | |
2127 | 2120 |
2128 *tile_task_worker_pool = ZeroCopyTileTaskWorkerPool::Create( | 2121 *tile_task_worker_pool = ZeroCopyTileTaskWorkerPool::Create( |
2129 GetTaskRunner(), task_graph_runner, resource_provider_.get()); | 2122 GetTaskRunner(), task_graph_runner, resource_provider_.get()); |
2130 return; | 2123 return; |
2131 } | 2124 } |
2132 | 2125 |
2133 if (settings_.use_one_copy) { | 2126 if (settings_.use_one_copy) { |
2134 // Synchronous single-threaded mode depends on tiles being ready to | 2127 // Synchronous single-threaded mode depends on tiles being ready to |
2135 // draw when raster is complete. Therefore, it must use one of zero | 2128 // draw when raster is complete. Therefore, it must use one of zero |
2136 // copy, software raster, or GPU raster. | 2129 // copy, software raster, or GPU raster. |
2137 DCHECK(!is_synchronous_single_threaded_); | 2130 DCHECK(!is_synchronous_single_threaded_); |
2138 | 2131 |
2139 // We need to create a staging resource pool when using copy rasterizer. | 2132 // We need to create a staging resource pool when using copy rasterizer. |
2140 *staging_resource_pool = | 2133 *staging_resource_pool = ResourcePool::Create(resource_provider_.get()); |
2141 ResourcePool::Create(resource_provider_.get(), image_target); | |
2142 *resource_pool = | 2134 *resource_pool = |
2143 ResourcePool::Create(resource_provider_.get(), GL_TEXTURE_2D); | 2135 ResourcePool::Create(resource_provider_.get(), GL_TEXTURE_2D); |
2144 | 2136 |
2145 int max_copy_texture_chromium_size = | 2137 int max_copy_texture_chromium_size = |
2146 context_provider->ContextCapabilities() | 2138 context_provider->ContextCapabilities() |
2147 .gpu.max_copy_texture_chromium_size; | 2139 .gpu.max_copy_texture_chromium_size; |
2148 | 2140 |
2149 *tile_task_worker_pool = OneCopyTileTaskWorkerPool::Create( | 2141 *tile_task_worker_pool = OneCopyTileTaskWorkerPool::Create( |
2150 GetTaskRunner(), task_graph_runner, context_provider, | 2142 GetTaskRunner(), task_graph_runner, context_provider, |
2151 resource_provider_.get(), staging_resource_pool_.get(), | 2143 resource_provider_.get(), staging_resource_pool_.get(), |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2220 return false; | 2212 return false; |
2221 } | 2213 } |
2222 | 2214 |
2223 output_surface_ = output_surface.Pass(); | 2215 output_surface_ = output_surface.Pass(); |
2224 resource_provider_ = ResourceProvider::Create( | 2216 resource_provider_ = ResourceProvider::Create( |
2225 output_surface_.get(), shared_bitmap_manager_, gpu_memory_buffer_manager_, | 2217 output_surface_.get(), shared_bitmap_manager_, gpu_memory_buffer_manager_, |
2226 proxy_->blocking_main_thread_task_runner(), | 2218 proxy_->blocking_main_thread_task_runner(), |
2227 settings_.renderer_settings.highp_threshold_min, | 2219 settings_.renderer_settings.highp_threshold_min, |
2228 settings_.renderer_settings.use_rgba_4444_textures, | 2220 settings_.renderer_settings.use_rgba_4444_textures, |
2229 settings_.renderer_settings.texture_id_allocation_chunk_size, | 2221 settings_.renderer_settings.texture_id_allocation_chunk_size, |
2230 settings_.use_persistent_map_for_gpu_memory_buffers); | 2222 settings_.use_persistent_map_for_gpu_memory_buffers, |
| 2223 settings_.use_image_texture_targets); |
2231 | 2224 |
2232 CreateAndSetRenderer(); | 2225 CreateAndSetRenderer(); |
2233 | 2226 |
2234 // Since the new renderer may be capable of MSAA, update status here. | 2227 // Since the new renderer may be capable of MSAA, update status here. |
2235 UpdateGpuRasterizationStatus(); | 2228 UpdateGpuRasterizationStatus(); |
2236 | 2229 |
2237 CreateTileManagerResources(); | 2230 CreateTileManagerResources(); |
2238 RecreateTreeResources(); | 2231 RecreateTreeResources(); |
2239 | 2232 |
2240 // Initialize vsync parameters to sane values. | 2233 // Initialize vsync parameters to sane values. |
(...skipping 1394 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3635 if (active_tree()) { | 3628 if (active_tree()) { |
3636 LayerAnimationValueProvider* layer = active_tree()->LayerById(layer_id); | 3629 LayerAnimationValueProvider* layer = active_tree()->LayerById(layer_id); |
3637 if (layer) | 3630 if (layer) |
3638 return layer->ScrollOffsetForAnimation(); | 3631 return layer->ScrollOffsetForAnimation(); |
3639 } | 3632 } |
3640 | 3633 |
3641 return gfx::ScrollOffset(); | 3634 return gfx::ScrollOffset(); |
3642 } | 3635 } |
3643 | 3636 |
3644 } // namespace cc | 3637 } // namespace cc |
OLD | NEW |