Index: content/browser/gpu/gpu_data_manager_impl_private.cc |
diff --git a/content/browser/gpu/gpu_data_manager_impl_private.cc b/content/browser/gpu/gpu_data_manager_impl_private.cc |
index 98656dfdd68ccffbf7f02be7ae4f9f663d753a74..cf6200aba3c8a47e82a72ac5ede14fbc508fb3a4 100644 |
--- a/content/browser/gpu/gpu_data_manager_impl_private.cc |
+++ b/content/browser/gpu/gpu_data_manager_impl_private.cc |
@@ -42,6 +42,7 @@ |
#include "base/win/windows_version.h" |
#endif // OS_WIN |
#if defined(OS_ANDROID) |
+#include "base/android/build_info.h" |
#include "ui/gfx/android/device_display_info.h" |
#endif // OS_ANDROID |
@@ -278,12 +279,15 @@ void ApplyAndroidWorkarounds(const gpu::GPUInfo& gpu_info, |
bool is_nexus10 = |
gpu_info.machine_model.find("Nexus 10") != std::string::npos; |
+ int sdk_int = base::android::BuildInfo::GetInstance()->sdk_int(); |
+ |
// IMG: avoid context switching perf problems, crashes with share groups |
// Mali-T604: http://crbug.com/154715 |
// QualComm, NVIDIA: Crashes with share groups |
- if (is_vivante || is_img || is_mali_t604 || is_nvidia || is_qualcomm || |
- is_broadcom) |
+ if (is_vivante || is_img || is_mali_t604 || |
+ ((is_nvidia || is_qualcomm) && sdk_int < 18) || is_broadcom) { |
command_line->AppendSwitch(switches::kEnableVirtualGLContexts); |
+ } |
gfx::DeviceDisplayInfo info; |
int default_tile_size = 256; |