Skip to content

DisplayList has no proactive culling as was available in SkPicture #92740

@flar

Description

@flar

Issue #92366 points out that DisplayList can be a lot slower rendering very complex scrolling pictures.

One tool that SkPicture uses to reduce rendering time is to maintain a BoundingBox Hierarchy for the picture. If such a hierarchy is available, it can use that data structure to home in on the draw records that intersect the clip. If it has no hierarchy then it will render all records.

The reason this may be important for #92366 is that it is rendering a picture with hundreds of thousands of lines, but only a tiny fraction of a percent of those lines fit in the scrolling window at any time. If the picture paint code can skip over a lot of those records quickly then it can more quickly draw only what is visible.

Adding such a mechanism to DisplayList may provide huge improvements for apps like the above sample.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Important issues not at the top of the work listc: performanceRelates to speed or footprint issues (see "perf:" labels)c: proposalA detailed proposal for a change to Flutterengineflutter/engine related. See also e: labels.

    Type

    No type

    Projects

    Status

    ✅ Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions