Bug 1474402 - Disable TryUpdateTransformOnly when we have RDL enabled since it can cause sorting issues. r=miko a=lizzard
authorMatt Woodrow <mwoodrow@mozilla.com>
Tue, 10 Jul 2018 08:48:58 +1200
changeset 477947 8c9f4cc4061b
parent 477946 9069ef47ae90
child 477948 a3fcc54f9143
push id9474
push userarchaeopteryx@coole-files.de
push date2018-07-13 21:13 +0000
treeherdermozilla-beta@8c9f4cc4061b [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmiko, lizzard
bugs1474402
milestone62.0
Bug 1474402 - Disable TryUpdateTransformOnly when we have RDL enabled since it can cause sorting issues. r=miko a=lizzard MozReview-Commit-ID: GguBTl2zZXO
layout/generic/nsFrame.cpp
--- a/layout/generic/nsFrame.cpp
+++ b/layout/generic/nsFrame.cpp
@@ -7139,16 +7139,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;
   }