| Index: content/browser/gpu/browser_gpu_memory_buffer_manager.cc
 | 
| diff --git a/content/browser/gpu/browser_gpu_memory_buffer_manager.cc b/content/browser/gpu/browser_gpu_memory_buffer_manager.cc
 | 
| index 189f0c5e57d08092a06d0cdbb9e705a285012e94..639e1cd23a94dbfb94be0b1d5de757744d9f678d 100644
 | 
| --- a/content/browser/gpu/browser_gpu_memory_buffer_manager.cc
 | 
| +++ b/content/browser/gpu/browser_gpu_memory_buffer_manager.cc
 | 
| @@ -29,6 +29,7 @@
 | 
|  
 | 
|  #if defined(OS_ANDROID)
 | 
|  #include "content/common/gpu/gpu_memory_buffer_factory_surface_texture.h"
 | 
| +#include "ui/gl/android/surface_texture.h"
 | 
|  #endif
 | 
|  
 | 
|  #if defined(USE_OZONE)
 | 
| @@ -124,6 +125,13 @@ GpuMemoryBufferConfigurationSet GetNativeGpuMemoryBufferConfigurations() {
 | 
|      force_native_gpu_read_write_formats = false;
 | 
|    }
 | 
|  
 | 
| +#if defined(OS_ANDROID)
 | 
| +  // Single buffer SurfaceTexture mode is required for native buffers on
 | 
| +  // Android.
 | 
| +  if (!gfx::SurfaceTexture::IsSingleBufferModeSupported())
 | 
| +    enable_native_gpu_memory_buffers = false;
 | 
| +#endif
 | 
| +
 | 
|    if (enable_native_gpu_memory_buffers) {
 | 
|      const gfx::BufferFormat kNativeFormats[] = {
 | 
|          gfx::BufferFormat::R_8,       gfx::BufferFormat::RGBA_4444,
 | 
| @@ -233,16 +241,17 @@ uint32 BrowserGpuMemoryBufferManager::GetImageTextureTarget(
 | 
|    }
 | 
|  
 | 
|    switch (GpuMemoryBufferFactory::GetNativeType()) {
 | 
| -    case gfx::SURFACE_TEXTURE_BUFFER:
 | 
|      case gfx::OZONE_NATIVE_PIXMAP:
 | 
| -      // GPU memory buffers that are shared with the GL using EGLImages
 | 
| +      // GPU memory buffers that are bound to GL textures using EGLImages
 | 
|        // require TEXTURE_EXTERNAL_OES.
 | 
|        return GL_TEXTURE_EXTERNAL_OES;
 | 
|      case gfx::IO_SURFACE_BUFFER:
 | 
|        // IOSurface backed images require GL_TEXTURE_RECTANGLE_ARB.
 | 
|        return GL_TEXTURE_RECTANGLE_ARB;
 | 
| -    case gfx::SHARED_MEMORY_BUFFER:
 | 
| +    case gfx::SURFACE_TEXTURE_BUFFER:
 | 
| +      // GPU memory buffers that require a copy expects GL_TEXTURE_2D as target.
 | 
|        return GL_TEXTURE_2D;
 | 
| +    case gfx::SHARED_MEMORY_BUFFER:
 | 
|      case gfx::EMPTY_BUFFER:
 | 
|        NOTREACHED();
 | 
|        return GL_TEXTURE_2D;
 | 
| 
 |