Closed
Bug 1487903
Opened 6 years ago
Closed 6 years ago
blob invalidation: invalidation broken inside mask/filter
Categories
(Core :: Graphics: WebRender, defect, P1)
Tracking
()
RESOLVED
FIXED
mozilla64
Tracking | Status | |
---|---|---|
firefox-esr52 | --- | unaffected |
firefox-esr60 | --- | unaffected |
firefox61 | --- | unaffected |
firefox62 | --- | disabled |
firefox63 | --- | disabled |
firefox64 | --- | fixed |
People
(Reporter: jrmuizel, Assigned: jrmuizel)
References
Details
(Keywords: regression)
Attachments
(2 files, 1 obsolete file)
The attached file has an animated gif that doesn't animate for me.
Assignee | ||
Comment 1•6 years ago
|
||
FWIW, this is extracted from Google Slides
Blocks: stage-wr-next
Priority: -- → P1
Assignee | ||
Comment 2•6 years ago
|
||
Weirdly enough resizing the window makes it animate sometimes.
Comment 3•6 years ago
|
||
partly-obsolete |
(In reply to Jeff Muizelaar [:jrmuizel] from comment #0)
> Created attachment 9005741 [details]
> animated-gif.html
>
> The attached file has an animated gif that doesn't animate for me.
Don't we need those css files?
That gif works fine for me. But it stops for a short moment when I start Chrome Dev (on Debian Testing, KDE, Nvidia GTX 1060).
Assignee | ||
Comment 4•6 years ago
|
||
No, it works without the CSS files. I need to resize the window to some size that causes it to stop working.
Comment 5•6 years ago
|
||
mozregression --good 2018-04-01 --bad 2018-08-30 --pref gfx.webrender.all:true -a https://bug1487903.bmoattachments.org/attachment.cgi?id=9005741
> 10:44.16 INFO: Last good revision: a25b2c7238f46770d612f2a2cb2f8731e31261ee
> 10:44.16 INFO: First bad revision: 133a13c44abedac2e448d315a32068ce1a5568f4
> 10:44.16 INFO: Pushlog:
> https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=a25b2c7238f46770d612f2a2cb2f8731e31261ee&tochange=133a13c44abedac2e448d315a32068ce1a5568f4
> 133a13c44abe Jeff Muizelaar — Bug 1458968. Adjust fuzz for webrender tests r=mstange
> 0f55d0ffe494 Markus Stange — Bug 1458968 - Create the nsDisplaySVGWrapper item in nsSVGOuterSVGAnonChildFrame, not in nsSVGOuterSVGFrame. r=mattwoodrow
> 6629dc2614ed Markus Stange — Bug 1458968 - Disable blend-difference-stacking.html because it fails now. r=mattwoodrow
> 30d54bb4cc27 Markus Stange — Bug 1458968 - Make the nsSVGOuterSVGAnonChildFrame a reference frame by always returning true from IsSVGTransformed. r=mattwoodrow
> 88d41ddd11be Markus Stange — Bug 1165185 - Add a test for not invalidating transformed elements inside SVG during scrolling. r=roc
Does not happen without blob invalidation.
Blocks: 1458968
status-firefox61:
--- → unaffected
status-firefox62:
--- → disabled
status-firefox-esr52:
--- → unaffected
status-firefox-esr60:
--- → unaffected
Keywords: regression
Summary: [blob] Animated GIFs in SVG sometimes don't animate → blob invalidation: Animated GIFs in SVG sometimes don't animate
Assignee | ||
Comment 6•6 years ago
|
||
This seems to be caused by the animated gif being behind a mask display item.
Assignee | ||
Updated•6 years ago
|
Assignee | ||
Updated•6 years ago
|
Summary: blob invalidation: Animated GIFs in SVG sometimes don't animate → blob invalidation: invalidation broken inside mask/filter
Assignee | ||
Comment 7•6 years ago
|
||
We have two possible approaches to fixing this:
1. When we run into a filter/mask just check if any of the child items have been invalidated and then invalidate the whole bounds
2. Refactor our use of BasicLayerManager to do this invalidation checking for us.
Assignee | ||
Comment 8•6 years ago
|
||
Using FrameLayerBuilder for invalidation ended up being easier and should make implementing fallback for 3d transforms inside masks easier so I went with that approach (2).
Assignee: nobody → jmuizelaar
Comment 9•6 years ago
|
||
Looks good. You'll need to retain the layer manager per mask/filter item though, you can't share them between multiple mask / filter items, otherwise you'll detect invalidations on every paint.
Assignee | ||
Comment 10•6 years ago
|
||
Comment 11•6 years ago
|
||
Comment on attachment 9006674 [details]
Bug 1487903. Fix invalidation of filter and mask items. r=mstange
Markus Stange [:mstange] has approved the revision.
Attachment #9006674 -
Flags: review+
Assignee | ||
Comment 12•6 years ago
|
||
Assignee | ||
Comment 13•6 years ago
|
||
[Child 10403, Main Thread] ###!!! ASSERTION: Died during transaction?: '!InTransaction()', file /builds/worker/workspace/build/src/gfx/layers/basic/BasicLayerManager.cpp, line 325
Assignee | ||
Updated•6 years ago
|
Attachment #9006439 -
Attachment is obsolete: true
Assignee | ||
Comment 14•6 years ago
|
||
This time with more transaction:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=0147f448b9ea139d1d6112db817a3a93693843c5
Assignee | ||
Comment 15•6 years ago
|
||
This time only cancel transaction if it's not over. I guess that's necessary :(
https://treeherder.mozilla.org/#/jobs?repo=try&revision=1ce373a35bc90e2b98c7a45274bc783257feecf4
Comment 16•6 years ago
|
||
Pushed by jmuizelaar@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/2766bfc77116
Fix invalidation of filter and mask items. r=mstange
Comment 17•6 years ago
|
||
bugherder |
Status: NEW → RESOLVED
Closed: 6 years ago
status-firefox64:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla64
You need to log in
before you can comment on or make changes to this bug.
Description
•