Bug 277109
| Summary: | REGRESSION (281042@main): [ macOS ] 2x tiled-drawing/scrolling/overflow/overflow-scrolled-* is flaky failing. | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Anfernee Viduya <aviduya> |
| Component: | Scrolling | Assignee: | Matt Woodrow <mattwoodrow> |
| Status: | RESOLVED FIXED | ||
| Severity: | Normal | CC: | mattwoodrow, simon.fraser, webkit-bot-watchers-bugzilla, webkit-bug-importer |
| Priority: | P2 | Keywords: | InRadar |
| Version: | WebKit Nightly Build | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
Anfernee Viduya
tiled-drawing/scrolling/overflow/overflow-scrolled-down-tile-coverage.html
tiled-drawing/scrolling/overflow/overflow-scrolled-up-tile-coverage.html
are flaky failing.
HISTORY:
https://results.webkit.org/?platform=mac&style=debug&style=release&suite=layout-tests&suite=layout-tests&test=tiled-drawing%2Fscrolling%2Foverflow%2Foverflow-scrolled-down-tile-coverage.html&test=tiled-drawing%2Fscrolling%2Foverflow%2Foverflow-scrolled-up-tile-coverage.html&version_name=Sonoma&version_name=Ventura
DIFF:
tiled-drawing/scrolling/overflow/overflow-scrolled-down-tile-coverage.html
@@ -44,12 +44,12 @@
(bounds 385.00 3000.00)
(drawsContent 1)
(visible rect 0.00, 1800.00 385.00 x 512.00)
- (coverage rect 0.00, 1544.00 897.00 x 1024.00)
+ (coverage rect 0.00, 1287.99 385.00 x 1024.01)
(intersects coverage rect 1)
(contentsScale 1.00)
- (tile cache coverage 0, 1536 385 x 1464)
+ (tile cache coverage 0, 1024 385 x 1536)
(tile size 512 x 512)
- (top left tile 0, 3 tiles grid 1 x 3)
+ (top left tile 0, 2 tiles grid 1 x 3)
(in window 1)
)
)
tiled-drawing/scrolling/overflow/overflow-scrolled-up-tile-coverage.html
@@ -44,12 +44,12 @@
(bounds 385.00 3000.00)
(drawsContent 1)
(visible rect 0.00, 200.00 385.00 x 512.00)
- (coverage rect 0.00, 0.00 897.00 x 1024.00)
+ (coverage rect 0.00, 200.00 385.00 x 1024.01)
(intersects coverage rect 1)
(contentsScale 1.00)
- (tile cache coverage 0, 0 385 x 1024)
+ (tile cache coverage 0, 0 385 x 1536)
(tile size 512 x 512)
- (top left tile 0, 0 tiles grid 1 x 2)
+ (top left tile 0, 0 tiles grid 1 x 3)
(in window 1)
)
)
LINK:
https://build.webkit.org/results/Apple-Sonoma-Debug-WK2-Tests/281341@main%20(2070)/tiled-drawing/scrolling/overflow/overflow-scrolled-down-tile-coverage-diff.txt
https://build.webkit.org/results/Apple-Sonoma-Debug-WK2-Tests/281341@main%20(2070)/tiled-drawing/scrolling/overflow/overflow-scrolled-up-tile-coverage-diff.txt
DESCRIPTION:
In 281042@main changes were made that were around WebCore::GraphicsLayer::setTileCoverage
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Radar WebKit Bug Importer
<rdar://problem/132528380>
Anfernee Viduya
REPRODUCIBILITY:
I was able to reproduce this issue on ToT using command.
run-webkit-tests 281196@main tiled-drawing/scrolling/overflow/overflow-scrolled-up-tile-coverage.html --iterations=10 --debug
run-webkit-tests 281196@main tiled-drawing/scrolling/overflow/overflow-scrolled-down-tile-coverage.html --iterations=10 --debug
Anfernee Viduya
Pull request: https://github.com/WebKit/WebKit/pull/31252
EWS
Test gardening commit 281407@main (6ead4f05a6e9): <https://commits.webkit.org/281407@main>
Reviewed commits have been landed. Closing PR #31252 and removing active labels.
Anfernee Viduya
Pull request: https://github.com/WebKit/WebKit/pull/32072
EWS
Test gardening commit 282142@main (1e16f12559d4): <https://commits.webkit.org/282142@main>
Reviewed commits have been landed. Closing PR #32072 and removing active labels.
Matt Woodrow
It looks like there’s at least two issues here.
One is that the requestAnimationFrame intervals can happen faster than 16ms, and `HistoricalVelocityData::velocityForNewData` ignores updates faster than, so we can sometimes end up with 0 velocity (for both tests).
The second is that the caller of `TileController::adjustTileCoverageWithScrollingVelocity` recomputes `m_velocity.lastUpdateTime` using `MonotonicTime::now`, and then this function computes the delta with another call. This results in a tiny, but not quite zero time delta. The future rect gets moved by this amount, which I don't think is correct. The 'down' test fails frequently, because this movement value varies a fair bit (racily, depending on the time delta) and affects the position of the final rect.
Matt Woodrow
Pull request: https://github.com/WebKit/WebKit/pull/45143
EWS
Committed 294876@main (ec36eefa5d9f): <https://commits.webkit.org/294876@main>
Reviewed commits have been landed. Closing PR #45143 and removing active labels.