BlinkGenPropertyTrees has launched in M75!
This was a big project for the paint, compositing, animations, and scrolling teams, and has been a long-standing architectural goal of the Chrome compositing system. BlinkGenPropertyTrees is a unification of the compositing data structures which sets us up for a composite-after-paint design, as well as unblocking code deduplication (e.g., scroll unification). There is now no longer a layer tree used by Blink, just a layer list with property trees.
11 bugs were fixed such as
crbug.com/400829 (object-fit for video: 19 stars),
crbug.com/467484 (composited content in foreignObject: 26 stars), and
crbug.com/678669 (border-radius clip escaping). UMA performance data from stable is flat (expected) with one rounded-corner render surface regression (
crbug.com/947715, being fixed in M76).
We plan to delete the pre-BGPT code before the M77 branch point.
For more information about BlinkGenPropertyTrees, see this one(-ish) pager:
https://docs.google.com/document/d/17GKr2uIH2O5GthdTyvJpv1qZjoHYoLgrzvCkbCHoID4/view
There was also a GPU brownbag launch retrospective talk:
Big thanks to everyone who made this launch possible!