Bug 1248183 - Block accelerated canvas2d on Vivante GC1000 GPUs; r=snorp
authorJamie Nicol <jnicol@mozilla.com>
Mon, 25 Apr 2016 14:49:29 +0200
changeset 294906 fb7111ef84f70cfba9ad445fd9fa492780401a31
parent 294905 412f3942777e3f876773da8a6c1eb2522dc1f381
child 294907 098bf703f8ba54cd7f5525ffbd290c82fbf909dc
push id18938
push usercbook@mozilla.com
push dateTue, 26 Apr 2016 13:05:44 +0000
treeherderfx-team@fb7111ef84f7 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerssnorp
bugs1248183
milestone49.0a1
Bug 1248183 - Block accelerated canvas2d on Vivante GC1000 GPUs; r=snorp
widget/android/GfxInfo.cpp
--- a/widget/android/GfxInfo.cpp
+++ b/widget/android/GfxInfo.cpp
@@ -408,22 +408,26 @@ GfxInfo::GetFeatureStatusImpl(int32_t aF
   if (mGLStrings->Vendor().IsEmpty() || mGLStrings->Renderer().IsEmpty()) {
     *aStatus = nsIGfxInfo::FEATURE_BLOCKED_DEVICE;
     return NS_OK;
   }
 
   // Don't evaluate special cases when evaluating the downloaded blocklist.
   if (aDriverInfo.IsEmpty()) {
     if (aFeature == nsIGfxInfo::FEATURE_CANVAS2D_ACCELERATION) {
-      // It's slower than software due to not having a compositing fast path
-      if (mSDKVersion >= 11) {
-        *aStatus = nsIGfxInfo::FEATURE_STATUS_OK;
-      } else {
+      if (mSDKVersion < 11) {
+        // It's slower than software due to not having a compositing fast path
         *aStatus = nsIGfxInfo::FEATURE_BLOCKED_OS_VERSION;
         aFailureId = "FEATURE_FAILURE_CANVAS_2D_SDK";
+      } else if (mGLStrings->Renderer().Find("Vivante GC1000") != -1) {
+        // Blocklist Vivante GC1000. See bug 1248183.
+        *aStatus = nsIGfxInfo::FEATURE_BLOCKED_DEVICE;
+        aFailureId = "FEATURE_FAILED_CANVAS_2D_HW";
+      } else {
+        *aStatus = nsIGfxInfo::FEATURE_STATUS_OK;
       }
       return NS_OK;
     }
 
     if (aFeature == FEATURE_WEBGL_OPENGL) {
       if (mGLStrings->Renderer().Find("Adreno 200") != -1 ||
           mGLStrings->Renderer().Find("Adreno 205") != -1)
       {