Don't build gecko display items for SVG elements with webrender.
Categories
(Core :: Graphics: WebRender, enhancement, P3)
Tracking
()
People
(Reporter: nical, Unassigned)
References
(Blocks 2 open bugs)
Details
Jeff will be able to explain the better since it's his. MY understanding is that we generate display items for SVG elements so that we can benefit from the DL's invalidation infrastructure. With WebRender we don't make use of the this invalidation in frastructure and we don't need any sorting for the SVG elements so we could skip the display item construction and record blobs directly off the frame tree.
Or something like that.
It's an idea for some time much later, maybe when we have WR everywhere.
Comment 1•5 years ago
|
||
Yep. Nical has the right idea. I talked this over with Miko and he didn't have any objections. There's a probably a bunch of details worth looking into though.
As I think about it more, I don't think this necessarily needs to wait for WR everywhere, but we still don't need to rush into it.
Updated•5 years ago
|
Comment 2•5 years ago
|
||
One thing to consider is how this will work for active parts. Currently we rely on having display items that can be converted to WebRender display items by the generic WebRender display item code.
To continue with this approach we'd need to make sure we still build display items for any items that are going to be active.
"A simple approach could be to set a bit on SVG frames that need a display item, and on all ancestors up to the root SVG frame
DL building recurses through all frames with that bit, and builds an nsDisplaySVG group for frames without it"
Comment 3•5 years ago
|
||
"Actually, an even simpler thing for v1 could be to set the 'descendant wants display item' bits up to the root, and just make a binary decision as to whether the SVG gets display items or not"
Updated•2 years ago
|
Description
•