Bug 1512799 - Don't force-disable WebRender on non-qualified hardware when the qualified pref is set. r=kats
authorBobby Holley <bobbyholley@gmail.com>
Mon, 10 Dec 2018 09:14:17 -0800
changeset 506850 2e17d019a6a41757eee90f72f204c20417f4a5eb
parent 506849 860ac47c10fbe9abae52c7f0ff9a9005723d36e2
child 506851 f6323dfcaa78f51e0fccc2c778ce81c93bfcce6d
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
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 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",