Summary: | REGRESSION(r268615): some accelerated transform tests are failing | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Antoine Quint <graouts> | ||||||||
Component: | Animations | Assignee: | Antoine Quint <graouts> | ||||||||
Status: | RESOLVED FIXED | ||||||||||
Severity: | Normal | CC: | dino, ews-watchlist, simon.fraser, webkit-bot-watchers-bugzilla, webkit-bug-importer | ||||||||
Priority: | P2 | Keywords: | InRadar | ||||||||
Version: | WebKit Nightly Build | ||||||||||
Hardware: | Unspecified | ||||||||||
OS: | Unspecified | ||||||||||
See Also: |
https://bugs.webkit.org/show_bug.cgi?id=217976 https://bugs.webkit.org/show_bug.cgi?id=218016 https://bugs.webkit.org/show_bug.cgi?id=220018 |
||||||||||
Attachments: |
|
Description
Antoine Quint
2020-10-16 15:30:05 PDT
*** Bug 217852 has been marked as a duplicate of this bug. *** Actually, it's a few tests and it's not specific to WK1: transitions/interrupted-transition-hardware.html webanimations/accelerated-transform-related-animation-property-order.html webanimations/accelerated-translate-animation-additional-animation-added-in-flight.html webanimations/accelerated-translate-animation-underlying-transform-changed-in-flight.html webanimations/accelerated-translate-animation-with-transform.html webanimations/accelerated-translate-animation.html These failures are specific to Mojave, where CA behaves differently than on Catalina and up. Interestingly, the failures stop reproducing if I use slightly smaller values. For these tests, we use a large value for animation duration : 1 day. Using a smaller but still long duration, such as 18 hours, stops reproducing the issue. In the failing cases we set a negative time value for the begin time. Looking at the bot results, those tests were consistent failures and are now passing fine. I think this has something to do with the value returned by CACurrentMediaTime(). Right, rebooting a Catalina machine reproduces the issue as well. I think this issue is fortuitous and not actually related to the change in r268615. I'm building with a previous revision to determine this. Removing the identity transform animation fixes the issue. As soon as we have two animations, having one animation with a start time that is in the past causes this problem. Created attachment 411855 [details]
Patch
Created attachment 411856 [details]
Patch
Created attachment 411874 [details]
Patch
Comment on attachment 411874 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=411874&action=review > Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:2865 > + auto currentTime = Seconds(CACurrentMediaTime()); Shouldn't this be related to the time value we snapshotted for the current rendering update? Comment on attachment 411874 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=411874&action=review >> Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:2865 >> + auto currentTime = Seconds(CACurrentMediaTime()); > > Shouldn't this be related to the time value we snapshotted for the current rendering update? same question This wasn't a Mojave-specific regression. Committed r268746: <https://trac.webkit.org/changeset/268746> (In reply to Simon Fraser (smfr) from comment #14) > Comment on attachment 411874 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=411874&action=review > > > Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:2865 > > + auto currentTime = Seconds(CACurrentMediaTime()); > > Shouldn't this be related to the time value we snapshotted for the current > rendering update? It probably should! Note that we only use this for animations that have a timeOffset specified. I've filed bug 218016 to look into potential syncing issues and the notion of "ready time". |