Avoid breaking blob groups in some cases
Categories
(Core :: Graphics: WebRender, enhancement, P3)
Tracking
()
People
(Reporter: nical, Unassigned)
References
(Blocks 1 open bug)
Details
The important bits of the blob grouping logic are in Grouper::ConstructGroups
in WebRenderCommandBuilder.cpp
. As far as I understand we accumulate items into a group until we find an item that should be active. Examples of items that should be active include animated transforms, or opacity, as well as containers with at least one child that should be active.
The latter causes us to create a new group even if the first item of a container is not active, and then another group when we get to the active child. https://v8.dev/blog/v8-release-80 is an example of this happening, where each rotated tweet gets into its own blob only because it contains an image that will be promoted to a regular display item.
We could create less layers if we didn't break groups at the container level but only when running into the child that must be active.
Description
•