diff options
author | jie.a.chen <jie.a.chen@intel.com> | 2015-08-07 05:59:23 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-08-07 13:00:01 +0000 |
commit | 0ffadce32916c6c4d7343b2d263d8e75606b7311 (patch) | |
tree | a3f2ecb8291f59ff15b98c5a1f132c619b19e074 /cc/trees | |
parent | cc79a33d41524a7609d78bd5ba77837992cbe6c5 (diff) | |
download | chromium_src-0ffadce32916c6c4d7343b2d263d8e75606b7311.zip chromium_src-0ffadce32916c6c4d7343b2d263d8e75606b7311.tar.gz chromium_src-0ffadce32916c6c4d7343b2d263d8e75606b7311.tar.bz2 |
Change switches::kContentImageTextureTarget to a list of image texture targets
Not knowing the GpuMemoryBuffer format that the compostor will use, the host is
hard to determine the image texture target properly. This CL changes
switches::kContentImageTextureTarget to a list of targets for each format, so
that the compositor can decide what format it wants to use without having to
worry about the target being wrong.
BUG=490362,512665
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel
Review URL: https://codereview.chromium.org/1251693003
Cr-Commit-Position: refs/heads/master@{#342339}
Diffstat (limited to 'cc/trees')
-rw-r--r-- | cc/trees/layer_tree_host_impl.cc | 15 | ||||
-rw-r--r-- | cc/trees/layer_tree_settings.cc | 5 | ||||
-rw-r--r-- | cc/trees/layer_tree_settings.h | 5 |
3 files changed, 12 insertions, 13 deletions
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc index ae0c943..628fc59 100644 --- a/cc/trees/layer_tree_host_impl.cc +++ b/cc/trees/layer_tree_host_impl.cc @@ -2114,16 +2114,9 @@ void LayerTreeHostImpl::CreateResourceAndTileTaskWorkerPool( } DCHECK(GetRendererCapabilities().using_image); - unsigned image_target = settings_.use_image_texture_target; - DCHECK_IMPLIES(image_target == GL_TEXTURE_RECTANGLE_ARB, - context_provider->ContextCapabilities().gpu.texture_rectangle); - DCHECK_IMPLIES( - image_target == GL_TEXTURE_EXTERNAL_OES, - context_provider->ContextCapabilities().gpu.egl_image_external); if (settings_.use_zero_copy) { - *resource_pool = - ResourcePool::Create(resource_provider_.get(), image_target); + *resource_pool = ResourcePool::Create(resource_provider_.get()); *tile_task_worker_pool = ZeroCopyTileTaskWorkerPool::Create( GetTaskRunner(), task_graph_runner, resource_provider_.get()); @@ -2137,8 +2130,7 @@ void LayerTreeHostImpl::CreateResourceAndTileTaskWorkerPool( DCHECK(!is_synchronous_single_threaded_); // We need to create a staging resource pool when using copy rasterizer. - *staging_resource_pool = - ResourcePool::Create(resource_provider_.get(), image_target); + *staging_resource_pool = ResourcePool::Create(resource_provider_.get()); *resource_pool = ResourcePool::Create(resource_provider_.get(), GL_TEXTURE_2D); @@ -2227,7 +2219,8 @@ bool LayerTreeHostImpl::InitializeRenderer( settings_.renderer_settings.highp_threshold_min, settings_.renderer_settings.use_rgba_4444_textures, settings_.renderer_settings.texture_id_allocation_chunk_size, - settings_.use_persistent_map_for_gpu_memory_buffers); + settings_.use_persistent_map_for_gpu_memory_buffers, + settings_.use_image_texture_targets); CreateAndSetRenderer(); diff --git a/cc/trees/layer_tree_settings.cc b/cc/trees/layer_tree_settings.cc index 0869e92..801dc6d 100644 --- a/cc/trees/layer_tree_settings.cc +++ b/cc/trees/layer_tree_settings.cc @@ -10,6 +10,7 @@ #include "base/command_line.h" #include "base/logging.h" #include "base/strings/string_number_conversions.h" +#include "ui/gfx/buffer_types.h" namespace cc { @@ -61,7 +62,9 @@ LayerTreeSettings::LayerTreeSettings() use_zero_copy(false), use_persistent_map_for_gpu_memory_buffers(false), enable_elastic_overscroll(false), - use_image_texture_target(GL_TEXTURE_2D), + use_image_texture_targets( + static_cast<size_t>(gfx::BufferFormat::LAST) + 1, + GL_TEXTURE_2D), ignore_root_layer_flings(false), scheduled_raster_task_limit(32), use_occlusion_for_tile_prioritization(false), diff --git a/cc/trees/layer_tree_settings.h b/cc/trees/layer_tree_settings.h index 27e80af..dbc9004 100644 --- a/cc/trees/layer_tree_settings.h +++ b/cc/trees/layer_tree_settings.h @@ -5,6 +5,8 @@ #ifndef CC_TREES_LAYER_TREE_SETTINGS_H_ #define CC_TREES_LAYER_TREE_SETTINGS_H_ +#include <vector> + #include "base/basictypes.h" #include "cc/base/cc_export.h" #include "cc/debug/layer_tree_debug_state.h" @@ -75,7 +77,8 @@ class CC_EXPORT LayerTreeSettings { bool use_zero_copy; bool use_persistent_map_for_gpu_memory_buffers; bool enable_elastic_overscroll; - unsigned use_image_texture_target; + // An array of image texture targets for each GpuMemoryBuffer format. + std::vector<unsigned> use_image_texture_targets; bool ignore_root_layer_flings; size_t scheduled_raster_task_limit; bool use_occlusion_for_tile_prioritization; |