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