Bug 1292326 - Disable layers acceleration by default when using mesa software rasterizers. r=jrmuizel
authorAndrew Comminos <andrew@comminos.com>
Thu, 04 Aug 2016 16:14:27 -0400
changeset 308183 8668f02b42d2238082548345ed73681c7e174e77
parent 308182 73dff614932f28779efd629ff91053a569ff880f
child 308184 be5163e05d753f603e53a3a0c05b1b621aab31df
push id31085
push useracomminos@mozilla.com
push dateThu, 04 Aug 2016 21:27:27 +0000
treeherderautoland@be5163e05d75 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjrmuizel
bugs1292326
milestone51.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1292326 - Disable layers acceleration by default when using mesa software rasterizers. r=jrmuizel MozReview-Commit-ID: 9H1XiuPpw15
widget/GfxInfoX11.cpp
--- a/widget/GfxInfoX11.cpp
+++ b/widget/GfxInfoX11.cpp
@@ -294,16 +294,26 @@ GfxInfo::GetFeatureStatusImpl(int32_t aF
     // see bug 696636
     *aStatus = nsIGfxInfo::FEATURE_BLOCKED_DEVICE;
     aFailureId = "FEATURE_FAILURE_OPENGL_1";
     return NS_OK;
   }
 
   // Don't evaluate any special cases if we're checking the downloaded blocklist.
   if (!aDriverInfo.Length()) {
+    // Blacklist software GL implementations from using layers acceleration.
+    // On the test infrastructure, we'll force-enable layers acceleration.
+    if (aFeature == nsIGfxInfo::FEATURE_OPENGL_LAYERS &&
+        (mIsLlvmpipe || mIsOldSwrast))
+    {
+      *aStatus = nsIGfxInfo::FEATURE_BLOCKED_DEVICE;
+      aFailureId = "FEATURE_FAILURE_SOFTWARE_GL";
+      return NS_OK;
+    }
+
     // Only check features relevant to Linux.
     if (aFeature == nsIGfxInfo::FEATURE_OPENGL_LAYERS ||
         aFeature == nsIGfxInfo::FEATURE_WEBGL_OPENGL ||
         aFeature == nsIGfxInfo::FEATURE_WEBGL_MSAA) {
 
       // whitelist the linux test slaves' current configuration.
       // this is necessary as they're still using the slightly outdated 190.42 driver.
       // this isn't a huge risk, as at least this is the exact setting in which we do continuous testing,