The test transitions/interrupted-transition-hardware.html has regressed after the fix for bug 217842 on WK1.
<rdar://problem/70394402>
*** 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".