Bug 1533673 - Allow APZ to send fission matrices with the GPU process. r=hsivonen
authorKartikaya Gupta <kgupta@mozilla.com>
Mon, 06 May 2019 16:17:55 +0000
changeset 531530 4abfc5c2a4ee418302a99a2662a78f88b84d44b9
parent 531529 c737fc642ddcaa5846383f906ec3f24145d4a7a5
child 531531 2f3479842f9101fe2466775eaf777c728c289839
push id11265
push userffxbld-merge
push dateMon, 13 May 2019 10:53:39 +0000
treeherdermozilla-beta@77e0fe8dbdd3 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewershsivonen
bugs1533673
milestone68.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 1533673 - Allow APZ to send fission matrices with the GPU process. r=hsivonen With the IPC fix in the previous patch this seems to work now. Differential Revision: https://phabricator.services.mozilla.com/D29942
gfx/layers/apz/src/APZCTreeManager.cpp
gfx/thebes/gfxPrefs.h
--- a/gfx/layers/apz/src/APZCTreeManager.cpp
+++ b/gfx/layers/apz/src/APZCTreeManager.cpp
@@ -3234,22 +3234,16 @@ bool APZCTreeManager::GetAPZTestData(Lay
 
 void APZCTreeManager::CollectTransformsForChromeMainThread(
     LayersId aRootLayerTreeId) {
   RefPtr<GeckoContentController> controller =
       GetContentController(aRootLayerTreeId);
   if (!controller) {
     return;
   }
-  if (controller->IsRemote() && !gfxPrefs::FissionApzMatricesWithGpuProcess()) {
-    // Avoid IPC errors in the GPU process case until
-    // https://bugzilla.mozilla.org/show_bug.cgi?id=1533673
-    // is resolved.
-    return;
-  }
   nsTArray<MatrixMessage> messages;
   {
     RecursiveMutexAutoLock lock(mTreeLock);
     // This formulation duplicates matrix multiplications closer
     // to the root of the tree. For now, aiming for separation
     // of concerns rather than minimum number of multiplications.
     ForEachNode<ReverseIterator>(
         mRootNode.get(), [&messages](HitTestingTreeNode* aNode) {
--- a/gfx/thebes/gfxPrefs.h
+++ b/gfx/thebes/gfxPrefs.h
@@ -401,21 +401,16 @@ class gfxPrefs final {
   DECL_GFX_PREF(Live, "dom.vr.puppet.enabled",                 VRPuppetEnabled, bool, false);
   DECL_GFX_PREF(Live, "dom.vr.puppet.submitframe",             VRPuppetSubmitFrame, uint32_t, 0);
   DECL_GFX_PREF(Live, "dom.vr.display.rafMaxDuration",         VRDisplayRafMaxDuration, uint32_t, 50);
   DECL_GFX_PREF(Once, "dom.vr.process.enabled",                VRProcessEnabled, bool, false);
   DECL_GFX_PREF(Once, "dom.vr.process.startup_timeout_ms",     VRProcessTimeoutMs, int32_t, 5000);
   DECL_GFX_PREF(Once, "dom.vr.service.enabled",                VRServiceEnabled, bool, true);
   DECL_GFX_PREF(Live, "dom.w3c_pointer_events.enabled",        PointerEventsEnabled, bool, false);
 
-  // Make APZ send child-to-screen layer matrices to the chrome process
-  // even when the GPU process is in use (behind pref due to IPC errors
-  // in reftests) https://bugzilla.mozilla.org/show_bug.cgi?id=1533673
-  DECL_GFX_PREF(Live, "fission.apz-matrices-with-gpu-process", FissionApzMatricesWithGpuProcess, bool, false);
-
   DECL_GFX_PREF(Live, "general.smoothScroll",                  SmoothScrollEnabled, bool, true);
   DECL_GFX_PREF(Live, "general.smoothScroll.currentVelocityWeighting",
                 SmoothScrollCurrentVelocityWeighting, float, 0.25);
   DECL_GFX_PREF(Live, "general.smoothScroll.durationToIntervalRatio",
                 SmoothScrollDurationToIntervalRatio, int32_t, 200);
   DECL_GFX_PREF(Live, "general.smoothScroll.lines.durationMaxMS",
                 LineSmoothScrollMaxDurationMs, int32_t, 150);
   DECL_GFX_PREF(Live, "general.smoothScroll.lines.durationMinMS",