Bad performance on google docs caused by fallback/blob image/svg filters
Categories
(Core :: Graphics: WebRender, defect, P3)
Tracking
()
People
(Reporter: daschilean, Assigned: tnikkel, NeedInfo)
References
(Depends on 1 open bug)
Details
Attachments
(7 files, 1 obsolete file)
Comment 1•6 years ago
|
||
Reporter | ||
Comment 2•6 years ago
|
||
Comment 3•6 years ago
|
||
Updated•6 years ago
|
Comment 4•6 years ago
|
||
Updated•6 years ago
|
Updated•6 years ago
|
Reporter | ||
Comment 5•6 years ago
|
||
Comment 6•6 years ago
|
||
Reporter | ||
Comment 7•6 years ago
|
||
Comment 8•6 years ago
|
||
Comment 9•6 years ago
|
||
Comment 10•6 years ago
|
||
Comment 11•6 years ago
|
||
Updated•6 years ago
|
Comment 12•6 years ago
|
||
I'm going to see if I can reduce the size of the blob image here by clipping it better.
Comment 13•6 years ago
|
||
Comment 14•6 years ago
|
||
We're making a blob image that's 124800x1400, but it's not clear to me what the best way of having the overflow:clip make this smaller is.
Updated•6 years ago
|
Comment 15•6 years ago
|
||
I talked with mstange about this and it seems like we should have a way forward using the SetBlobImageVisibleArea with the building rect. I'll try that out.
Comment 16•6 years ago
|
||
Here's an attempt at this. It doesn't seem to work though :(
Comment 17•6 years ago
|
||
Restricting the paint rect fixes the problem.
Comment 18•6 years ago
|
||
This changes the calculation to match what we do for SVG blobs.
Notably, it takes the residual into account when computing the area
we want to paint into. This makes a difference if the fallback
is happening at a fractional offset.
Comment 19•6 years ago
|
||
Instead of setting the item PaintRect to paintRect we set it to the BuildingRect. This properly reduces
the size based on clips and gives a big performance improvement for clipped nsDisplayFilter items
because we call CreateSimiliar surface for the size of building rect instead of the bounds of the item.
Depends on D17178
Comment 20•6 years ago
|
||
This lets us get some of the advantages of clipped blobs by drawing less of the
fallback blob while still not needing to rerecord and redraw the blob
completely during scrolling because of the changing clip rect. It drops
the number of tiles requested on a reduced test case reduced from the Googled
doc from 60 to a much more reasonable number.
Depends on D17179
Comment 21•6 years ago
|
||
Comment 22•6 years ago
|
||
Comment 23•6 years ago
|
||
Comment 24•6 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/4b841cc68f4d
https://hg.mozilla.org/mozilla-central/rev/2bd66516b97a
https://hg.mozilla.org/mozilla-central/rev/0a5759a02d07
Updated•6 years ago
|
Comment 25•6 years ago
|
||
The "SetPaintRect to GetBuildingRect()" patch turns out to be wrong. We can't restrict our painting and then draw different parts without repainting.
Updated•6 years ago
|
Comment 26•6 years ago
|
||
Comment 27•6 years ago
|
||
This still isn't amazing but is good enough not to block MVP
Updated•6 years ago
|
Comment 28•6 years ago
|
||
Hi, This issue seems to be fixed now, I tried to reproduce it in Nightly 67.0a1 (2019-02-10)) but without any success, I think we can update the status and mark it Accordingly.
Comment 29•6 years ago
|
||
Performance still isn't amazing so I'd like to keep it open until bug 1505871 is fixed.
Updated•6 years ago
|
Comment 30•6 years ago
|
||
Hi Jeff, Since bug 1505871 is fixed should we close this one as well the document runs smooth on my end with WebRender on.
Updated•6 years ago
|
Comment 31•6 years ago
|
||
THis issue is verified as fixed in the Latest Firefox Nightly 67.0a1 (2019-02-28), its still a bit laggy in beta 66.0b12
Updated•6 years ago
|
Updated•6 years ago
|
Updated•6 years ago
|
Updated•6 years ago
|
Description
•