Open Bug 1661044 Opened 4 years ago Updated 4 years ago

Avoid breaking blob groups in some cases

Categories

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

enhancement

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.

You need to log in before you can comment on or make changes to this bug.