SVG pixelated on scale animation (SVG is pixelated while it is animating. Sharpens after the animation stops)
Categories
(Core :: Graphics: WebRender, defect)
Tracking
()
People
(Reporter: bugzilla, Unassigned)
References
(Regression)
Details
(Keywords: regression)
Attachments
(1 file)
32.98 KB,
image/png
|
Details |
User Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:84.0) Gecko/20100101 Firefox/84.0
Steps to reproduce:
Add a scale keyframe animation to an SVG, either img'd or inline, from scale <1 to 1
Actual results:
The image is pixelated, or sometimes a shaded square, or somewhat blurry until the animation is complete. The scale happens as intended but the quality of the image is severely reduced.
See: https://codepen.io/jacobpake/pen/bGwXqyq
Expected results:
The image should be produced to the same quality whether it is resizing or not, as in Chromium and Safari (iOS) and presumably an older version of Firefox (I am not able to test this currently)
Reporter | ||
Comment 1•4 years ago
|
||
Whilst animation incomplete, the right hand image is distorted. The left hand side is the same SVG image with no animation
Reporter | ||
Updated•4 years ago
|
Comment 2•4 years ago
|
||
Bugbug thinks this bug should belong to this component, but please revert this change in case of error.
Updated•4 years ago
|
Comment 3•4 years ago
|
||
Can only repro with WR.
Comment 4•4 years ago
|
||
Probably a ChooseScale bug, surprisingly bug 1662062 doesn't fix this. I'll take a look and see if it's a ChooseScale issue.
Comment 5•4 years ago
|
||
Regression range is
https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=598d441e4ebaa93ab098d266035a396057c82129&tochange=6cbf1430a66ef5aa5f066ed77677f47ea44fc0e1
The only thing in there that looks like it could be related is bug 1574493
Updated•4 years ago
|
Updated•4 years ago
|
Comment 6•2 years ago
|
||
Fix range:
Bug 1804872. Handle cases where a scale animation is being run on the compositor when choosing the size to get a decoded image at. r=aosmond
The transform on the stacking context helper has the current scale, not the largest scale of the animation. The scale on the stack context helper holds this value thanks to the logic in ChooseScale.
Before webrender we would just look at the current matrix on the gfx context so it would have final size to draw at for the animation.
I have a fix that also fixes the blob recordings/image region case but it is a little more invasive so I want to land this first. The 3rd reftest will ensure that we can't turn on blob recording without fixing that case.
Differential Revision: https://phabricator.services.mozilla.com/D175627
2023-05-20T19:21:28.725000: DEBUG : Did not find a branch, checking all integration branches
2023-05-20T19:21:28.732000: INFO : The bisection is done.
2023-05-20T19:21:28.809000: INFO : Stopped
Comment 7•2 years ago
|
||
(In reply to Timothy Nikkel (:tnikkel) from comment #5)
Regression range is
https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=598d441e4ebaa93ab098d266035a396057c82129&tochange=6cbf1430a66ef5aa5f066ed77677f47ea44fc0e1The only thing in there that looks like it could be related is bug 1574493
It was bug 1574493 actually, the changes to nsLayoutUtils::ComputeImageContainerDrawingParameters caused this.
Comment 8•2 years ago
|
||
Set release status flags based on info from the regressing bug 1574493
Comment 9•2 years ago
|
||
Marking as duplicate so we don't have to track those flags here too (for example this bug is already 115 fixed).
Updated•2 years ago
|
Description
•