| Index: cc/trees/layer_tree_host_impl.cc
|
| diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc
|
| index 26c14925bf1d19c1c4f6e64d88e540e346f1f5ed..e09d049b48b0435e5573308144a2aeac39863e6d 100644
|
| --- a/cc/trees/layer_tree_host_impl.cc
|
| +++ b/cc/trees/layer_tree_host_impl.cc
|
| @@ -80,6 +80,7 @@
|
| #include "ui/gfx/geometry/scroll_offset.h"
|
| #include "ui/gfx/geometry/size_conversions.h"
|
| #include "ui/gfx/geometry/vector2d_conversions.h"
|
| +#include "ui/gfx/gpu_memory_buffer.h"
|
|
|
| namespace cc {
|
| namespace {
|
| @@ -2103,8 +2104,10 @@ void LayerTreeHostImpl::CreateResourceAndTileTaskWorkerPool(
|
|
|
| ContextProvider* context_provider = output_surface_->context_provider();
|
| if (!context_provider) {
|
| - *resource_pool =
|
| - ResourcePool::Create(resource_provider_.get(), GL_TEXTURE_2D);
|
| + *resource_pool = ResourcePool::Create(
|
| + resource_provider_.get(),
|
| + std::vector<uint>(gfx::GpuMemoryBuffer::FORMAT_LAST + 1,
|
| + GL_TEXTURE_2D));
|
|
|
| *tile_task_worker_pool = BitmapTileTaskWorkerPool::Create(
|
| GetTaskRunner(), task_graph_runner, resource_provider_.get());
|
| @@ -2112,8 +2115,10 @@ void LayerTreeHostImpl::CreateResourceAndTileTaskWorkerPool(
|
| }
|
|
|
| if (use_gpu_rasterization_) {
|
| - *resource_pool =
|
| - ResourcePool::Create(resource_provider_.get(), GL_TEXTURE_2D);
|
| + *resource_pool = ResourcePool::Create(
|
| + resource_provider_.get(),
|
| + std::vector<uint>(gfx::GpuMemoryBuffer::FORMAT_LAST + 1,
|
| + GL_TEXTURE_2D));
|
|
|
| int msaa_sample_count =
|
| use_msaa_ ? settings_.gpu_rasterization_msaa_sample_count : 0;
|
| @@ -2126,16 +2131,11 @@ 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);
|
| + std::vector<uint> image_targets = settings_.use_image_texture_targets;
|
|
|
| if (settings_.use_zero_copy) {
|
| *resource_pool =
|
| - ResourcePool::Create(resource_provider_.get(), image_target);
|
| + ResourcePool::Create(resource_provider_.get(), image_targets);
|
|
|
| *tile_task_worker_pool = ZeroCopyTileTaskWorkerPool::Create(
|
| GetTaskRunner(), task_graph_runner, resource_provider_.get());
|
| @@ -2150,9 +2150,11 @@ void LayerTreeHostImpl::CreateResourceAndTileTaskWorkerPool(
|
|
|
| // We need to create a staging resource pool when using copy rasterizer.
|
| *staging_resource_pool =
|
| - ResourcePool::Create(resource_provider_.get(), image_target);
|
| - *resource_pool =
|
| - ResourcePool::Create(resource_provider_.get(), GL_TEXTURE_2D);
|
| + ResourcePool::Create(resource_provider_.get(), image_targets);
|
| + *resource_pool = ResourcePool::Create(
|
| + resource_provider_.get(),
|
| + std::vector<uint>(gfx::GpuMemoryBuffer::FORMAT_LAST + 1,
|
| + GL_TEXTURE_2D));
|
|
|
| int max_copy_texture_chromium_size =
|
| context_provider->ContextCapabilities()
|
| @@ -2172,7 +2174,8 @@ void LayerTreeHostImpl::CreateResourceAndTileTaskWorkerPool(
|
| DCHECK(!is_synchronous_single_threaded_);
|
|
|
| *resource_pool = ResourcePool::Create(
|
| - resource_provider_.get(), GL_TEXTURE_2D);
|
| + resource_provider_.get(),
|
| + std::vector<uint>(gfx::GpuMemoryBuffer::FORMAT_LAST + 1, GL_TEXTURE_2D));
|
|
|
| *tile_task_worker_pool = PixelBufferTileTaskWorkerPool::Create(
|
| GetTaskRunner(), task_graph_runner_, context_provider,
|
|
|