Bug 1474402 - Disable TryUpdateTransformOnly when we have RDL enabled since it can cause sorting issues. r=miko, a=RyanVM
authorMatt Woodrow <mwoodrow@mozilla.com>
Tue, 10 Jul 2018 08:48:58 +1200
changeset 473814 9567eb705574
parent 473813 0d15d4c4e8c6
child 473815 647313afaa4a
push id1749
push userryanvm@gmail.com
push dateMon, 06 Aug 2018 13:40:05 +0000
treeherdermozilla-release@b5d39c025741 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmiko, RyanVM
bugs1474402
milestone61.0.2
Bug 1474402 - Disable TryUpdateTransformOnly when we have RDL enabled since it can cause sorting issues. r=miko, a=RyanVM MozReview-Commit-ID: GguBTl2zZXO
layout/generic/nsFrame.cpp
--- a/layout/generic/nsFrame.cpp
+++ b/layout/generic/nsFrame.cpp
@@ -7204,16 +7204,26 @@ DoesLayerOrAncestorsHaveOutOfDateFrameMe
     }
   }
   return false;
 }
 
 bool
 nsIFrame::TryUpdateTransformOnly(Layer** aLayerResult)
 {
+  // If we move a transformed layer when we have a merged display
+  // list, then it can end up intersecting other items for which
+  // we don't have a defined ordering.
+  // We could allow this if the display list is in the canonical
+  // ordering (correctly sorted for all intersections), but we
+  // don't have a way to check that yet.
+  if (nsLayoutUtils::AreRetainedDisplayListsEnabled()) {
+    return false;
+  }
+
   Layer* layer = FrameLayerBuilder::GetDedicatedLayer(
     this, DisplayItemType::TYPE_TRANSFORM);
   if (!layer || !layer->HasUserData(LayerIsPrerenderedDataKey())) {
     // If this layer isn't prerendered or we clip composites to our OS
     // window, then we can't correctly optimize to an empty
     // transaction in general.
     return false;
   }