Bug 1512799 - Don't force-disable WebRender on non-qualified hardware when the qualified pref is set. r=kats,jrmuizel
☠☠ backed out by 4dfcb38d0df7 ☠ ☠
authorBobby Holley <bobbyholley@gmail.com>
Mon, 10 Dec 2018 18:35:18 +0000
changeset 506834 cc3f0de953e41bc8ca8b098c31cd3cf2fe983529
parent 506812 772261da44428f4c4fa0697bed7b953c9654ae90
child 506835 3e79eda819cc35a8d3d6e4beb0186bc4770127d6
push id10547
push userffxbld-merge
push dateMon, 21 Jan 2019 13:03:58 +0000
treeherdermozilla-beta@24ec1916bffe [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerskats, jrmuizel
bugs1512799
milestone65.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 1512799 - Don't force-disable WebRender on non-qualified hardware when the qualified pref is set. r=kats,jrmuizel The gfx pref machinery asserts when user-level values are set that environment and runtime prefs have not been set. This effectively means we need to make all user-level decisions before calls to ForceDisable(), and the code in question here violates that contract. This branch is not necessary for correctness, since the pref basically means "enable WR on qualified hardware", and we can just ignore that request if the hardware is not qualified. It does provide extra about:support information, but we also get that information from the recording in WebRenderHardwareQualificationStatus, which creates a separate decision log for WEBRENDER_QUALIFIED. In this case, it will report something like: "WEBRENDER_QUALIFIED: blocked by env: No qualified hardware" which should be enough here. Differential Revision: https://phabricator.services.mozilla.com/D14082
gfx/thebes/gfxPlatform.cpp
--- a/gfx/thebes/gfxPlatform.cpp
+++ b/gfx/thebes/gfxPlatform.cpp
@@ -2710,23 +2710,18 @@ void gfxPlatform::InitWebRenderConfig() 
 
     // gfx.webrender.enabled and gfx.webrender.all only work on nightly
 #ifdef NIGHTLY_BUILD
   } else if (prefEnabled) {
     featureWebRender.UserEnable("Force enabled by pref");
 #endif
 
     // gfx.webrender.all.qualified works on all channels
-  } else if (wrQualifiedAll) {
-    if (featureWebRenderQualified.IsEnabled()) {
-      featureWebRender.UserEnable("Qualified enabled by pref ");
-    } else {
-      featureWebRender.ForceDisable(FeatureStatus::Blocked,
-                                    "Qualified enable blocked", failureId);
-    }
+  } else if (wrQualifiedAll && featureWebRenderQualified.IsEnabled()) {
+    featureWebRender.UserEnable("Qualified enabled by pref ");
   }
 
   // If the user set the pref to force-disable, let's do that. This will
   // override all the other enabling prefs (gfx.webrender.enabled,
   // gfx.webrender.all, and gfx.webrender.all.qualified).
   if (gfxPrefs::WebRenderForceDisabled() || WebRenderEnvvarDisabled()) {
     featureWebRender.UserDisable(
         "User force-disabled WR",