summaryrefslogtreecommitdiffstats
path: root/cc/trees
diff options
context:
space:
mode:
authorjie.a.chen <jie.a.chen@intel.com>2015-08-07 05:59:23 -0700
committerCommit bot <commit-bot@chromium.org>2015-08-07 13:00:01 +0000
commit0ffadce32916c6c4d7343b2d263d8e75606b7311 (patch)
treea3f2ecb8291f59ff15b98c5a1f132c619b19e074 /cc/trees
parentcc79a33d41524a7609d78bd5ba77837992cbe6c5 (diff)
downloadchromium_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.cc15
-rw-r--r--cc/trees/layer_tree_settings.cc5
-rw-r--r--cc/trees/layer_tree_settings.h5
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;