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, |