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 2108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2119 use_msaa_ ? settings_.gpu_rasterization_msaa_sample_count : 0; | 2119 use_msaa_ ? settings_.gpu_rasterization_msaa_sample_count : 0; |
2120 | 2120 |
2121 *tile_task_worker_pool = GpuTileTaskWorkerPool::Create( | 2121 *tile_task_worker_pool = GpuTileTaskWorkerPool::Create( |
2122 GetTaskRunner(), task_graph_runner, context_provider, | 2122 GetTaskRunner(), task_graph_runner, context_provider, |
2123 resource_provider_.get(), settings_.use_distance_field_text, | 2123 resource_provider_.get(), settings_.use_distance_field_text, |
2124 msaa_sample_count); | 2124 msaa_sample_count); |
2125 return; | 2125 return; |
2126 } | 2126 } |
2127 | 2127 |
2128 DCHECK(GetRendererCapabilities().using_image); | 2128 DCHECK(GetRendererCapabilities().using_image); |
2129 unsigned image_target = settings_.use_image_texture_target; | |
2130 DCHECK_IMPLIES(image_target == GL_TEXTURE_RECTANGLE_ARB, | |
2131 context_provider->ContextCapabilities().gpu.texture_rectangle); | |
2132 DCHECK_IMPLIES( | |
2133 image_target == GL_TEXTURE_EXTERNAL_OES, | |
2134 context_provider->ContextCapabilities().gpu.egl_image_external); | |
2135 | 2129 |
2136 if (settings_.use_zero_copy) { | 2130 if (settings_.use_zero_copy) { |
2137 *resource_pool = | 2131 *resource_pool = ResourcePool::Create(resource_provider_.get()); |
2138 ResourcePool::Create(resource_provider_.get(), image_target); | |
2139 | 2132 |
2140 *tile_task_worker_pool = ZeroCopyTileTaskWorkerPool::Create( | 2133 *tile_task_worker_pool = ZeroCopyTileTaskWorkerPool::Create( |
2141 GetTaskRunner(), task_graph_runner, resource_provider_.get()); | 2134 GetTaskRunner(), task_graph_runner, resource_provider_.get()); |
2142 return; | 2135 return; |
2143 } | 2136 } |
2144 | 2137 |
2145 if (settings_.use_one_copy) { | 2138 if (settings_.use_one_copy) { |
2146 // Synchronous single-threaded mode depends on tiles being ready to | 2139 // Synchronous single-threaded mode depends on tiles being ready to |
2147 // draw when raster is complete. Therefore, it must use one of zero | 2140 // draw when raster is complete. Therefore, it must use one of zero |
2148 // copy, software raster, or GPU raster. | 2141 // copy, software raster, or GPU raster. |
2149 DCHECK(!is_synchronous_single_threaded_); | 2142 DCHECK(!is_synchronous_single_threaded_); |
2150 | 2143 |
2151 // We need to create a staging resource pool when using copy rasterizer. | 2144 // We need to create a staging resource pool when using copy rasterizer. |
2152 *staging_resource_pool = | 2145 *staging_resource_pool = ResourcePool::Create(resource_provider_.get()); |
2153 ResourcePool::Create(resource_provider_.get(), image_target); | |
2154 *resource_pool = | 2146 *resource_pool = |
2155 ResourcePool::Create(resource_provider_.get(), GL_TEXTURE_2D); | 2147 ResourcePool::Create(resource_provider_.get(), GL_TEXTURE_2D); |
2156 | 2148 |
2157 int max_copy_texture_chromium_size = | 2149 int max_copy_texture_chromium_size = |
2158 context_provider->ContextCapabilities() | 2150 context_provider->ContextCapabilities() |
2159 .gpu.max_copy_texture_chromium_size; | 2151 .gpu.max_copy_texture_chromium_size; |
2160 | 2152 |
2161 *tile_task_worker_pool = OneCopyTileTaskWorkerPool::Create( | 2153 *tile_task_worker_pool = OneCopyTileTaskWorkerPool::Create( |
2162 GetTaskRunner(), task_graph_runner, context_provider, | 2154 GetTaskRunner(), task_graph_runner, context_provider, |
2163 resource_provider_.get(), staging_resource_pool_.get(), | 2155 resource_provider_.get(), staging_resource_pool_.get(), |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2232 return false; | 2224 return false; |
2233 } | 2225 } |
2234 | 2226 |
2235 output_surface_ = output_surface.Pass(); | 2227 output_surface_ = output_surface.Pass(); |
2236 resource_provider_ = ResourceProvider::Create( | 2228 resource_provider_ = ResourceProvider::Create( |
2237 output_surface_.get(), shared_bitmap_manager_, gpu_memory_buffer_manager_, | 2229 output_surface_.get(), shared_bitmap_manager_, gpu_memory_buffer_manager_, |
2238 proxy_->blocking_main_thread_task_runner(), | 2230 proxy_->blocking_main_thread_task_runner(), |
2239 settings_.renderer_settings.highp_threshold_min, | 2231 settings_.renderer_settings.highp_threshold_min, |
2240 settings_.renderer_settings.use_rgba_4444_textures, | 2232 settings_.renderer_settings.use_rgba_4444_textures, |
2241 settings_.renderer_settings.texture_id_allocation_chunk_size, | 2233 settings_.renderer_settings.texture_id_allocation_chunk_size, |
2242 settings_.use_persistent_map_for_gpu_memory_buffers); | 2234 settings_.use_persistent_map_for_gpu_memory_buffers, |
| 2235 settings_.use_image_texture_targets); |
2243 | 2236 |
2244 CreateAndSetRenderer(); | 2237 CreateAndSetRenderer(); |
2245 | 2238 |
2246 // Since the new renderer may be capable of MSAA, update status here. | 2239 // Since the new renderer may be capable of MSAA, update status here. |
2247 UpdateGpuRasterizationStatus(); | 2240 UpdateGpuRasterizationStatus(); |
2248 | 2241 |
2249 CreateTileManagerResources(); | 2242 CreateTileManagerResources(); |
2250 RecreateTreeResources(); | 2243 RecreateTreeResources(); |
2251 | 2244 |
2252 // Initialize vsync parameters to sane values. | 2245 // Initialize vsync parameters to sane values. |
(...skipping 1354 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3607 if (active_tree()) { | 3600 if (active_tree()) { |
3608 LayerAnimationValueProvider* layer = active_tree()->LayerById(layer_id); | 3601 LayerAnimationValueProvider* layer = active_tree()->LayerById(layer_id); |
3609 if (layer) | 3602 if (layer) |
3610 return layer->ScrollOffsetForAnimation(); | 3603 return layer->ScrollOffsetForAnimation(); |
3611 } | 3604 } |
3612 | 3605 |
3613 return gfx::ScrollOffset(); | 3606 return gfx::ScrollOffset(); |
3614 } | 3607 } |
3615 | 3608 |
3616 } // namespace cc | 3609 } // namespace cc |
OLD | NEW |