| Index: gpu/command_buffer/service/async_pixel_transfer_delegate_android.cc
|
| diff --git a/gpu/command_buffer/service/async_pixel_transfer_delegate_android.cc b/gpu/command_buffer/service/async_pixel_transfer_delegate_android.cc
|
| index 2d834c9d556e1cbe63ded4e7bc3e2e527086d99e..fa29cf6c1e76dd18c4f24e28b1fbc61ad232e2a4 100644
|
| --- a/gpu/command_buffer/service/async_pixel_transfer_delegate_android.cc
|
| +++ b/gpu/command_buffer/service/async_pixel_transfer_delegate_android.cc
|
| @@ -12,6 +12,16 @@
|
| #include "ui/gl/gl_implementation.h"
|
|
|
| namespace gpu {
|
| +namespace {
|
| +
|
| +bool IsBroadcom() {
|
| + const char* vendor = reinterpret_cast<const char*>(glGetString(GL_VENDOR));
|
| + if (vendor)
|
| + return std::string(vendor).find("Broadcom") != std::string::npos;
|
| + return false;
|
| +}
|
| +
|
| +}
|
|
|
| // We only used threaded uploads when we can:
|
| // - Create EGLImages out of OpenGL textures (EGL_KHR_gl_texture_2D_image)
|
| @@ -27,7 +37,8 @@ AsyncPixelTransferDelegate* AsyncPixelTransferDelegate::Create(
|
| context->HasExtension("EGL_KHR_image") &&
|
| context->HasExtension("EGL_KHR_image_base") &&
|
| context->HasExtension("EGL_KHR_gl_texture_2D_image") &&
|
| - context->HasExtension("GL_OES_EGL_image")) {
|
| + context->HasExtension("GL_OES_EGL_image") &&
|
| + !IsBroadcom()) {
|
| return new AsyncPixelTransferDelegateEGL;
|
| }
|
| LOG(INFO) << "Async pixel transfers not supported";
|
|
|