cc: zero/one-copy based on shared memory on IOS uses GL_TEXTURE_2D, not GL_TEXTURE_RECTANGLE_ARB.
GL_TEXTURE_RECTANGLE_ARB is needed for only IOSurface backed images like GL_TEXTURE_EXTERNAL_OES
is needed for only surface texture backed images on Android. Replace switches::kUseImageExternal
with switches::kUseImageTextureTarget in order to let cc know what is proper texture target backed image.
Review URL: https://codereview.chromium.org/766663005
Cr-Commit-Position: refs/heads/master@{#307214}
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc
index 1096262..e19c9a2cc 100644
--- a/cc/trees/layer_tree_host_impl.cc
+++ b/cc/trees/layer_tree_host_impl.cc
@@ -2010,16 +2010,13 @@
}
if (GetRendererCapabilities().using_image) {
- unsigned image_target = GL_TEXTURE_2D;
-#if defined(OS_MACOSX)
- // GL_TEXTURE_RECTANGLE_ARB target is required by IOSurface backed images.
- DCHECK(context_provider->ContextCapabilities().gpu.texture_rectangle);
- image_target = GL_TEXTURE_RECTANGLE_ARB;
-#endif
- if (settings_.use_image_external) {
- DCHECK(context_provider->ContextCapabilities().gpu.egl_image_external);
- image_target = GL_TEXTURE_EXTERNAL_OES;
- }
+ 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 || IsSynchronousSingleThreaded()) {
*resource_pool =