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..0e4450945d46ba7e85fad411fa94bb341c1b366f 100644 |
--- a/gpu/command_buffer/service/async_pixel_transfer_delegate_android.cc |
+++ b/gpu/command_buffer/service/async_pixel_transfer_delegate_android.cc |
@@ -20,6 +20,10 @@ namespace gpu { |
AsyncPixelTransferDelegate* AsyncPixelTransferDelegate::Create( |
gfx::GLContext* context) { |
TRACE_EVENT0("gpu", "AsyncPixelTransferDelegate::Create"); |
+ bool is_broadcom = false; |
+ const char* vendor = reinterpret_cast<const char*>(glGetString(GL_VENDOR)); |
+ if (vendor) |
+ is_broadcom = std::string(vendor).find("Broadcom") != std::string::npos; |
switch (gfx::GetGLImplementation()) { |
case gfx::kGLImplementationEGLGLES2: |
DCHECK(context); |
@@ -27,7 +31,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") && |
+ !is_broadcom) { |
return new AsyncPixelTransferDelegateEGL; |
} |
LOG(INFO) << "Async pixel transfers not supported"; |