Picture (with SVG filter) not displayed completely
Categories
(Core :: Graphics: WebRender, defect, P2)
Tracking
()
Tracking | Status | |
---|---|---|
firefox-esr60 | --- | unaffected |
firefox67 | --- | fixed |
firefox68 | --- | fixed |
People
(Reporter: jandem, Assigned: jrmuizel)
References
(Regression)
Details
(Keywords: regression, Whiteboard: [wr-april])
Attachments
(3 files, 1 obsolete file)
(deleted),
video/mp4
|
Details | |
(deleted),
text/html
|
Details | |
(deleted),
text/x-phabricator-request
|
pascalc
:
approval-mozilla-beta+
|
Details |
STR:
- Load https://webkit.org/blog/8685/introducing-the-jetstream-2-benchmark-suite/
- Wait for it to load
- Scroll down. The bar graph shows up partly with WR enabled.
This is on OS X, MBP.
Reporter | ||
Comment 1•6 years ago
|
||
I can take a screenshot or try to record a video if people are unable to repro..
Assignee | ||
Comment 2•6 years ago
|
||
I don't see this on Mac. Can you record a video?
Updated•6 years ago
|
Reporter | ||
Comment 3•6 years ago
|
||
Reporter | ||
Comment 4•6 years ago
|
||
If I switch to a different tab and back, everything looks fine.
Reporter | ||
Comment 5•6 years ago
|
||
Hm I just noticed I don't get the black background in other browsers or a February 1st Nightly. That's also with WR turned off. Let me bisect that first.
Reporter | ||
Comment 6•6 years ago
|
||
(In reply to Jan de Mooij [:jandem] from comment #5)
Hm I just noticed I don't get the black background in other browsers or a February 1st Nightly. That's also with WR turned off. Let me bisect that first.
Ah that's bug 1494034. I can't reproduce with ui.systemUsesDarkTheme = 0.
@Jeff: maybe you can try with ui.systemUsesDarkTheme = 1 ? You have to add the pref manually.
Assignee | ||
Comment 7•6 years ago
|
||
Yes. The dark theme adds a filter to the image and we take a different (broken) path in WebRender.
Assignee | ||
Updated•6 years ago
|
Reporter | ||
Comment 8•6 years ago
|
||
Slightly reduced copy of the website, just in case they decide to change their CSS.
Assignee | ||
Comment 9•6 years ago
|
||
This reduces the size and turns on the filter unconditionally
Assignee | ||
Comment 10•6 years ago
|
||
I think this worked in early January and has regressed sometime between then and now.
Comment 11•6 years ago
|
||
Reproducible: on Windows10
STR: comment#0 with following userContent.css
AR: the image is truncated
img {
filter: url("#invertLightness") !important;
}
Regression window:
https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=63988e7c891f8d664f428fbaf91d9b181e3557e1&tochange=0571c2da7c437eb965ebf0cb79a4d991e6d7b8c2
Regressed by:
0571c2da7c43 Matt Woodrow — Bug 1460491 - Part 2: Only recompute visibility for items if they are newly added to this layer, or intersect one that changed. r=jnicol
920d49a96e6e Matt Woodrow — Bug 1460491 - Part 1: Split nsDisplayItem::mVisibleRect into two members, one for each stated purpose. Gets rid of the save/restore since we no longer modify the building rect. r=jnicol
Updated•6 years ago
|
Updated•6 years ago
|
Assignee | ||
Comment 12•6 years ago
|
||
This is caused by us only drawing the visible rect of the filter. I have some idea how to fix it.
Comment 13•6 years ago
|
||
You should remove your name from your other account
Updated•6 years ago
|
Comment 14•6 years ago
|
||
Jeff is on leave, and it's my understanding that the change he was working on for this is involved enough that it wouldn't make sense for anyone else to pick it up and try to fix this for 67. Bumping to 68.
Assignee | ||
Comment 15•6 years ago
|
||
Typically this would be handled by the visible region of the layer
changing. However, since we build the container layer for the filter
item directly the visible region doesn't get set or checked. As a
shortcut to using more of FLB we just ensure the building rect hasn't
changed.
The situations under which this bugs shows up are somewhat rare:
- The filtered item needs to be in transform so that it's bounds
are not changed by scrolling. - The filtered item needs to contain items that change their drawing
depending on the building rect. In this case an image with downscale
on decode. - The filter needs to be unsupported by WebRender.
Comment 16•6 years ago
|
||
Comment 17•6 years ago
|
||
bugherder |
Assignee | ||
Comment 18•6 years ago
|
||
Comment on attachment 9062580 [details]
Bug 1539846. Ensure building rect changes cause invalidations.
Beta/Release Uplift Approval Request
- User impact if declined: Sometimes we don't fully paint content that has an SVG filter applied. e.g. https://webkit.org/blog/8685/introducing-the-jetstream-2-benchmark-suite/
- Is this code covered by automated tests?: Yes
- Has the fix been verified in Nightly?: Yes
- Needs manual test from QE?: No
- If yes, steps to reproduce:
- List of other uplifts needed: None
- Risk to taking this patch: Low
- Why is the change risky/not risky? (and alternatives if risky): This only has an impact when WebRender is enabled. It doesn't touch the non-WebRender code path. We're rolling out WebRender gradually and if there's any fallout we can easily stop that rollout.
In the worst case this should only cause additional invalidations and it seems like those situations are quite rare so I'm not very worried about any performance decrease.
- String changes made/needed:
Assignee | ||
Updated•6 years ago
|
Assignee | ||
Updated•6 years ago
|
Comment 19•6 years ago
|
||
Comment on attachment 9062580 [details]
Bug 1539846. Ensure building rect changes cause invalidations.
low risk, approved for our beta branch before RC
Comment 20•6 years ago
|
||
bugherder uplift |
Updated•5 years ago
|
Description
•