Title: [237942] trunk
- Revision
- 237942
- Author
- simon.fra...@apple.com
- Date
- 2018-11-07 13:46:19 -0800 (Wed, 07 Nov 2018)
Log Message
Some WK1 repaint tests are flakey
https://bugs.webkit.org/show_bug.cgi?id=190627
Reviewed by Zalan Bujtas.
Source/WebCore:
Repaint tracking in GraphicsLayerCA was sensitive to whether there were already dirty
rects on the layer, since tracking happened after checks against existing dirty rects.
This caused some WK1 repaint tests to be flakey, since there's no guarantee that
no repaints happen between the last layer flush and a test calling startTrackingRepaints().
Fix by moving the repaint tracking to before the checks against existing dirty rects.
This is more similar to how repaint tracking on FrameView works.
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::setNeedsDisplayInRect):
LayoutTests:
New baseline.
* compositing/masks/compositing-clip-path-change-no-repaint-expected.txt:
Modified Paths
Added Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (237941 => 237942)
--- trunk/LayoutTests/ChangeLog 2018-11-07 21:23:34 UTC (rev 237941)
+++ trunk/LayoutTests/ChangeLog 2018-11-07 21:46:19 UTC (rev 237942)
@@ -1,3 +1,14 @@
+2018-11-07 Simon Fraser <simon.fra...@apple.com>
+
+ Some WK1 repaint tests are flakey
+ https://bugs.webkit.org/show_bug.cgi?id=190627
+
+ Reviewed by Zalan Bujtas.
+
+ New baseline.
+
+ * compositing/masks/compositing-clip-path-change-no-repaint-expected.txt:
+
2018-11-07 Ross Kirsling <ross.kirsl...@sony.com>
[WinCairo] Unreviewed layout test gardening.
Modified: trunk/LayoutTests/compositing/masks/compositing-clip-path-change-no-repaint-expected.txt (237941 => 237942)
--- trunk/LayoutTests/compositing/masks/compositing-clip-path-change-no-repaint-expected.txt 2018-11-07 21:23:34 UTC (rev 237941)
+++ trunk/LayoutTests/compositing/masks/compositing-clip-path-change-no-repaint-expected.txt 2018-11-07 21:46:19 UTC (rev 237942)
@@ -29,10 +29,14 @@
(drawsContent 1)
(repaint rects
(rect 0.00 0.00 300.00 300.00)
+ (rect 0.00 0.00 300.00 300.00)
+ (rect 0.00 0.00 300.00 300.00)
)
)
(repaint rects
(rect 0.00 0.00 300.00 300.00)
+ (rect 0.00 0.00 300.00 300.00)
+ (rect 0.00 0.00 300.00 300.00)
)
)
)
Modified: trunk/LayoutTests/platform/ios-wk2/compositing/columns/composited-lr-paginated-repaint-expected.txt (237941 => 237942)
--- trunk/LayoutTests/platform/ios-wk2/compositing/columns/composited-lr-paginated-repaint-expected.txt 2018-11-07 21:23:34 UTC (rev 237941)
+++ trunk/LayoutTests/platform/ios-wk2/compositing/columns/composited-lr-paginated-repaint-expected.txt 2018-11-07 21:46:19 UTC (rev 237942)
@@ -13,6 +13,8 @@
(drawsContent 1)
(repaint rects
(rect 27.00 25.00 52.00 77.00)
+ (rect 27.00 25.00 52.00 77.00)
+ (rect 27.00 25.00 52.00 77.00)
)
)
)
Modified: trunk/LayoutTests/platform/ios-wk2/compositing/columns/composited-rl-paginated-repaint-expected.txt (237941 => 237942)
--- trunk/LayoutTests/platform/ios-wk2/compositing/columns/composited-rl-paginated-repaint-expected.txt 2018-11-07 21:23:34 UTC (rev 237941)
+++ trunk/LayoutTests/platform/ios-wk2/compositing/columns/composited-rl-paginated-repaint-expected.txt 2018-11-07 21:46:19 UTC (rev 237942)
@@ -15,6 +15,8 @@
(drawsContent 1)
(repaint rects
(rect 27.00 25.00 52.00 77.00)
+ (rect 27.00 25.00 52.00 77.00)
+ (rect 27.00 25.00 52.00 77.00)
)
)
)
Added: trunk/LayoutTests/platform/ios-wk2/compositing/repaint/repaint-on-layer-grouping-change-expected.txt (0 => 237942)
--- trunk/LayoutTests/platform/ios-wk2/compositing/repaint/repaint-on-layer-grouping-change-expected.txt (rev 0)
+++ trunk/LayoutTests/platform/ios-wk2/compositing/repaint/repaint-on-layer-grouping-change-expected.txt 2018-11-07 21:46:19 UTC (rev 237942)
@@ -0,0 +1,37 @@
+
+(GraphicsLayer
+ (anchor 0.00 0.00)
+ (bounds 800.00 600.00)
+ (children 1
+ (GraphicsLayer
+ (bounds 800.00 600.00)
+ (contentsOpaque 1)
+ (children 2
+ (GraphicsLayer
+ (offsetFromRenderer width=10 height=10)
+ (position 10.00 10.00)
+ (anchor -0.02 -0.04)
+ (bounds 540.00 240.00)
+ (drawsContent 1)
+ (repaint rects
+ (rect 0.00 0.00 540.00 240.00)
+ )
+ )
+ (GraphicsLayer
+ (offsetFromRenderer width=10 height=10)
+ (position 10.00 260.00)
+ (anchor -0.20 -0.20)
+ (bounds 50.00 50.00)
+ (contentsOpaque 1)
+ (drawsContent 1)
+ (repaint rects
+ (rect 490.00 190.00 50.00 50.00)
+ (rect 490.00 190.00 50.00 50.00)
+ (rect 0.00 0.00 50.00 50.00)
+ )
+ )
+ )
+ )
+ )
+)
+
Modified: trunk/Source/WebCore/ChangeLog (237941 => 237942)
--- trunk/Source/WebCore/ChangeLog 2018-11-07 21:23:34 UTC (rev 237941)
+++ trunk/Source/WebCore/ChangeLog 2018-11-07 21:46:19 UTC (rev 237942)
@@ -1,3 +1,21 @@
+2018-11-07 Simon Fraser <simon.fra...@apple.com>
+
+ Some WK1 repaint tests are flakey
+ https://bugs.webkit.org/show_bug.cgi?id=190627
+
+ Reviewed by Zalan Bujtas.
+
+ Repaint tracking in GraphicsLayerCA was sensitive to whether there were already dirty
+ rects on the layer, since tracking happened after checks against existing dirty rects.
+ This caused some WK1 repaint tests to be flakey, since there's no guarantee that
+ no repaints happen between the last layer flush and a test calling startTrackingRepaints().
+
+ Fix by moving the repaint tracking to before the checks against existing dirty rects.
+ This is more similar to how repaint tracking on FrameView works.
+
+ * platform/graphics/ca/GraphicsLayerCA.cpp:
+ (WebCore::GraphicsLayerCA::setNeedsDisplayInRect):
+
2018-11-07 Dean Jackson <d...@apple.com>
[iOS] WebGL leaks exact GPU type
Modified: trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp (237941 => 237942)
--- trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp 2018-11-07 21:23:34 UTC (rev 237941)
+++ trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp 2018-11-07 21:46:19 UTC (rev 237942)
@@ -911,14 +911,16 @@
if (rect.isEmpty())
return;
-
+
+ addRepaintRect(rect);
+
const size_t maxDirtyRects = 32;
-
+
for (size_t i = 0; i < m_dirtyRects.size(); ++i) {
if (m_dirtyRects[i].contains(rect))
return;
}
-
+
if (m_dirtyRects.size() < maxDirtyRects)
m_dirtyRects.append(rect);
else
@@ -925,8 +927,6 @@
m_dirtyRects[0].unite(rect);
noteLayerPropertyChanged(DirtyRectsChanged);
-
- addRepaintRect(rect);
}
void GraphicsLayerCA::setContentsNeedsDisplay()
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes