Closed Bug 1487903 Opened 6 years ago Closed 6 years ago

blob invalidation: invalidation broken inside mask/filter

Categories

(Core :: Graphics: WebRender, defect, P1)

63 Branch
defect

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)

Attached file animated-gif.html (deleted) —
The attached file has an animated gif that doesn't animate for me.
FWIW, this is extracted from Google Slides
Priority: -- → P1
Weirdly enough resizing the window makes it animate sometimes.
(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).
No, it works without the CSS files. I need to resize the window to some size that causes it to stop working.
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
Keywords: regression
Summary: [blob] Animated GIFs in SVG sometimes don't animate → blob invalidation: Animated GIFs in SVG sometimes don't animate
This seems to be caused by the animated gif being behind a mask display item.
Blocks: stage-wr-nightly
No longer blocks: stage-wr-next
Summary: blob invalidation: Animated GIFs in SVG sometimes don't animate → blob invalidation: invalidation broken inside mask/filter
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.
Attached patch WIP sketch (obsolete) (deleted) — Splinter Review
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
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.
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+
[Child 10403, Main Thread] ###!!! ASSERTION: Died during transaction?: '!InTransaction()', file /builds/worker/workspace/build/src/gfx/layers/basic/BasicLayerManager.cpp, line 325
Attachment #9006439 - Attachment is obsolete: true
This time only cancel transaction if it's not over. I guess that's necessary :( https://treeherder.mozilla.org/#/jobs?repo=try&revision=1ce373a35bc90e2b98c7a45274bc783257feecf4
Pushed by jmuizelaar@mozilla.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/2766bfc77116 Fix invalidation of filter and mask items. r=mstange
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla64
Depends on: 1489663
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: