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

Unified 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: Change switches::kContentImageTextureTarget to a list of image texture targets Created 5 years, 5 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 side-by-side diff with in-line comments
Download patch
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,

Powered by Google App Engine
This is Rietveld 408576698