Title: [212492] branches/safari-603-branch/Source/WebCore
Revision
212492
Author
matthew_han...@apple.com
Date
2017-02-16 16:56:07 -0800 (Thu, 16 Feb 2017)

Log Message

Merge r211766. rdar://problem/30467124

Modified Paths

Diff

Modified: branches/safari-603-branch/Source/WebCore/ChangeLog (212491 => 212492)


--- branches/safari-603-branch/Source/WebCore/ChangeLog	2017-02-17 00:56:04 UTC (rev 212491)
+++ branches/safari-603-branch/Source/WebCore/ChangeLog	2017-02-17 00:56:07 UTC (rev 212492)
@@ -1,5 +1,28 @@
 2017-02-16  Matthew Hanson  <matthew_han...@apple.com>
 
+        Merge r211766. rdar://problem/30467124
+
+    2017-02-06  Simon Fraser  <simon.fra...@apple.com>
+
+            Re-land r210095 (avoid a tile revalidation on scale change)
+            https://bugs.webkit.org/show_bug.cgi?id=167866
+
+            Reviewed by Tim Horton.
+
+            r210095 was rolled out in r211230 but now that all TileControllers unparent
+            offscreen tiles, we can roll it back it.
+
+            Also add more Tiling logging.
+
+            * platform/graphics/ca/TileGrid.cpp:
+            (WebCore::validationPolicyAsString):
+            (WebCore::TileGrid::setScale):
+            (WebCore::TileGrid::prepopulateRect):
+            (WebCore::TileGrid::revalidateTiles):
+            (WebCore::TileGrid::ensureTilesForRect):
+
+2017-02-16  Matthew Hanson  <matthew_han...@apple.com>
+
         Merge r211688. rdar://problem/30467177
 
     2017-02-05  Simon Fraser  <simon.fra...@apple.com>

Modified: branches/safari-603-branch/Source/WebCore/platform/graphics/ca/TileGrid.cpp (212491 => 212492)


--- branches/safari-603-branch/Source/WebCore/platform/graphics/ca/TileGrid.cpp	2017-02-17 00:56:04 UTC (rev 212491)
+++ branches/safari-603-branch/Source/WebCore/platform/graphics/ca/TileGrid.cpp	2017-02-17 00:56:07 UTC (rev 212492)
@@ -44,6 +44,25 @@
 
 namespace WebCore {
 
+#if !LOG_DISABLED
+static String validationPolicyAsString(TileGrid::TileValidationPolicy validationPolicy)
+{
+    StringBuilder builder;
+    builder.appendLiteral("[");
+    if (validationPolicy & TileGrid::PruneSecondaryTiles)
+        builder.appendLiteral("prune secondary");
+
+    if (validationPolicy & TileGrid::UnparentAllTiles) {
+        if (builder.isEmpty())
+            builder.appendLiteral(", ");
+        builder.appendLiteral("unparent all");
+    }
+    builder.appendLiteral("]");
+
+    return builder.toString();
+}
+#endif
+
 TileGrid::TileGrid(TileController& controller)
     : m_controller(controller)
     , m_containerLayer(*controller.rootLayer().createCompatibleLayer(PlatformCALayer::LayerTypeLayer, nullptr))
@@ -78,8 +97,7 @@
     transform.scale(1 / m_scale);
     m_containerLayer->setTransform(transform);
 
-    // FIXME: we may revalidateTiles twice in this commit.
-    revalidateTiles(PruneSecondaryTiles);
+    m_controller.setNeedsRevalidateTiles();
 
     m_containerLayer.get().setContentsScale(m_controller.deviceScaleFactor());
 
@@ -215,6 +233,8 @@
 
 bool TileGrid::prepopulateRect(const FloatRect& rect)
 {
+    LOG_WITH_STREAM(Tiling, stream << "TileGrid " << this << " prepopulateRect: " << rect);
+
     IntRect enclosingCoverageRect = enclosingIntRect(rect);
     if (m_primaryTileCoverageRect.contains(enclosingCoverageRect))
         return false;
@@ -332,6 +352,8 @@
     FloatRect coverageRect = m_controller.coverageRect();
     IntRect bounds = m_controller.bounds();
 
+    LOG_WITH_STREAM(Tiling, stream << "TileGrid " << this << " revalidateTiles: bounds " << bounds << " coverageRect" << coverageRect << " validation: " << validationPolicyAsString(validationPolicy));
+
     if (coverageRect.isEmpty() || bounds.isEmpty())
         return;
 
@@ -532,6 +554,8 @@
     if (!m_controller.isInWindow())
         return IntRect();
 
+    LOG_WITH_STREAM(Tiling, stream << "TileGrid " << this << " ensureTilesForRect: " << rect);
+
     FloatRect scaledRect(rect);
     scaledRect.scale(m_scale);
     IntRect rectInTileCoords(enclosingIntRect(scaledRect));
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to