Summary: | The image is flashing if falls out and has an animation transform: rotate | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Roman Kosov <bugs-webkit> | ||||||||
Component: | Compositing | Assignee: | Simon Fraser (smfr) <simon.fraser> | ||||||||
Status: | RESOLVED FIXED | ||||||||||
Severity: | Normal | CC: | commit-queue, dino, graouts, koivisto, sabouhallawa, simon.fraser, webkit-bug-importer | ||||||||
Priority: | P2 | Keywords: | InRadar | ||||||||
Version: | Safari 13 | ||||||||||
Hardware: | Mac | ||||||||||
OS: | macOS 10.15 | ||||||||||
See Also: | https://bugs.webkit.org/show_bug.cgi?id=173732 | ||||||||||
Attachments: |
|
Description
Roman Kosov
2019-10-30 09:39:41 PDT
The flashing happens only when resizing the window or scrolling the page horizontally such that the image is partially visible. And it is not because of image decoding. This is about backing store detachment. Created attachment 383525 [details]
Reduced test case
This code is wrong: if (auto extent = animationExtent()) { // Adjust the animation extent to match the current animation position. bounds = rects.animatingTransform.inverse().valueOr(TransformationMatrix()).mapRect(*extent); } I don't think we need to map "extent" through the inverses of the current transform, because "extent" was computed as the union of all the possible bounds that result from the animation. Created attachment 383574 [details]
Patch
Comment on attachment 383574 [details] Patch Clearing flags on attachment: 383574 Committed r252486: <https://trac.webkit.org/changeset/252486> All reviewed patches have been landed. Closing bug. |