Skip to content

[Impeller] Cacheable paths adds overhead when paths are unstable. #142873

@jonahwilliams

Description

@jonahwilliams

flutter/engine#50076 added a mechanism to store impeller::Paths in the display list alongside the Skia Path. On an example application in #131345 (comment) , this mechanism is regressing performance due to the additonal cost of heap allocation/deallocation of the storage data. Because the Paths are recreated every frame, it does not benefit from the cache.

See also: #131345 (comment)

The additional dtor time in the profile is due to free-ing the cacheable paths. Perhaps we can get some of this performance back by inlining the vector allocation into the Path::Data object, thereby reducing the total heap allocations?

FYI @flar

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Important issues not at the top of the work liste: impellerImpeller rendering backend issues and features requeststeam-engineOwned by Engine teamtriaged-engineTriaged by Engine team

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions