| Summary: | Incorrect paint of 'translate' property animation | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | Andrew Shcherbyna <octrace> | ||||||
| Component: | Animations | Assignee: | Antoine Quint <graouts> | ||||||
| Status: | RESOLVED FIXED | ||||||||
| Severity: | Normal | CC: | dino, graouts, graouts, simon.fraser, webkit-bug-importer | ||||||
| Priority: | P2 | Keywords: | InRadar | ||||||
| Version: | Safari 16 | ||||||||
| Hardware: | Mac (Intel) | ||||||||
| OS: | macOS 13 | ||||||||
| See Also: | https://bugs.webkit.org/show_bug.cgi?id=236019 | ||||||||
| Bug Depends on: | |||||||||
| Bug Blocks: | 250901 | ||||||||
| Attachments: |
|
||||||||
|
Description
Andrew Shcherbyna
2022-10-31 17:14:06 PDT
Looks like the repaint we issue when the animation starts (after the element has popped into a composting layer) uses a rectangle which is affected by the running animation. Might be caused by bug 236019. I wonder if this has anything to do with use of RenderStyle::hasTransform() which does not check for individual transform properties. Or probably to do with KeyframeEffect::computeExtentOfTransformAnimation() not accounting for individual transform properties :( Created attachment 464574 [details]
Test
Making computeExtentOfTransformAnimation() run for "translate" and returning some large bounds for debugging purposes doesn't alter behavior here. I suppose this shouldn't be surprising as I believe that method is about computing layer overlap for compositing purposes while animations run. One possible issue is that Styleable::isRunningAcceleratedTransformAnimation() only checks for "transform" animations. I'm not sure if this will fix the problem but that at least is definitely wrong. Pull request: https://github.com/WebKit/WebKit/pull/8879 Committed 259173@main (f55528510521): <https://commits.webkit.org/259173@main> Reviewed commits have been landed. Closing PR #8879 and removing active labels. |