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

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

Issue 1251693003: cc: Fix the format of GpuMemoryBuffer for SurfaceTexture (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Move the targets to ResourceProvider and fix the nits Created 5 years, 4 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 #include <set> 10 #include <set>
(...skipping 2108 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698