Skip to content

[Impeller] ☂️ Path drawing performance needs significant improvement. #143077

@bdero

Description

@bdero

Some members of the Impeller team have done some performance benchmarking comparing Impeller vs Skia (@jonahwilliams and @dnfield ?) and overall feel that path handling performance in Impeller is not acceptable for release on Android.

Phrases like "needs significant improvement" and "acceptable performance" are intentionally vague. The purpose of this umbrella bug is to disambiguate by collecting evidence together and linking to other specific tasks which are theorized to solve trouble cases.
So the first order of business is to collect this evidence together (which may expand or contract over time). And once we identify a collection of trouble cases, we can hammer down these trouble cases and at least track overall progress.

Trouble cases may or may not involve tessellation performance. For example, if we remove generic tessellation altogether by employing stencil-then-cover and our trouble cases aren't improved enough to release on Android, we may need to come up with non-tessellation solutions to get us over the line.


Impeller having "acceptable" performance means that the overall perceived experience of switching from Skia to Impeller should be good for common usage. Unrealistic/esoteric performance comparisons are not useful blockers for release on Android (unless we have a reason to believe they inform realistic usage -- and are esoteric for the purpose of isolating the problem and reducing noise, like in the benchmarks, for example).

Documented trouble cases

To make judgements about how Impeller's path rendering shapes up, it's important to:

  1. Compare the overall experience of using Impeller with Skia (ideally by collecting side-by-side videos from actual target devices).
  2. Collect artifacts that inform us as to why things are slow. Especially cases where the experience of using Impeller is visibly worse on devices with decent hardware. However, if Impeller spends significantly more energy churning frames than Skia, then that's going to adversely affect battery life on high end phones and result in us dropping frames on low end phones.

Unchecked box = untriaged/missing investigation.

Metadata

Metadata

Assignees

Labels

P2Important issues not at the top of the work liste: impellerImpeller rendering backend issues and features requestsengineflutter/engine related. See also e: labels.team-engineOwned by Engine teamtriaged-engineTriaged by Engine team

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions