| Summary: | REGRESSION (r289032): rotate animation doesn't interpolate between 0 and 1turn without forced 50% | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | Mattan Ingram <mattaningram> | ||||||
| Component: | Animations | Assignee: | Martin Robinson <mrobinson> | ||||||
| Status: | RESOLVED FIXED | ||||||||
| Severity: | Normal | CC: | dino, ews-watchlist, graouts, graouts, mattaningram, mrobinson, simon.fraser, webkit-bug-importer | ||||||
| Priority: | P2 | Keywords: | InRadar | ||||||
| Version: | Safari Technology Preview | ||||||||
| Hardware: | Mac (Apple Silicon) | ||||||||
| OS: | macOS 12 | ||||||||
| URL: | https://codepen.io/mattaningram/pen/zYROyqL | ||||||||
| See Also: | https://bugs.webkit.org/show_bug.cgi?id=235311 | ||||||||
| Attachments: |
|
||||||||
|
Description
Mattan Ingram
2022-04-29 11:40:45 PDT
Regressed with r289032, the fix for bug 235311. Cc'ing Martin Robinson, who wrote the regressing commit. This seems to be an issue with CoreAnimation. I confirmed that the test case worked for WebKitGTK (which just animates using WebCore interpolation), but fails for hardware animations using the CoreAnimation backend. Created attachment 459166 [details]
Reduced test case using a single function for transform
I suspect that this was an issue before, but was hidden by the fact that this animation was previously falling back to software. I've attached a reduced test case that fails in Mac WebKit and only uses a single transform function (ie should not be affected by my change).
It's perfectly fine to not run an accelerated animation for this case if we can't find a way to run it with CA, especially if that was our previous behavior. (In reply to Antoine Quint from comment #5) > It's perfectly fine to not run an accelerated animation for this case if we > can't find a way to run it with CA, especially if that was our previous > behavior. It's quite possible this is indeed a regression, but I don't understand how yet. I'll do a deeper investigation. Created attachment 459298 [details]
Patch
Writing tests for the runtime behavior of an accelerated animation is notoriously difficult :( I've posted what I think is a fix for this, but haven't yet marked it for review. I'm investigating now how to write a test. When pausing an animation (an approach that's often used for reference testing), I believe that WebKit uses the software path because rendering is correct without the fix. Pull request: https://github.com/WebKit/WebKit/pull/781 Committed r294752 (250920@main): <https://commits.webkit.org/250920@main> Reviewed commits have been landed. Closing PR #781 and removing active labels. This caused bug 243864. |