Open Bug 1587827 Opened 5 years ago Updated 2 years ago

Don't build gecko display items for SVG elements with webrender.

Categories

(Core :: Graphics: WebRender, enhancement, P3)

enhancement

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.

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.

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"

"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"

Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.