From https://docs.flutter.dev/perf/impeller:
Impeller provides a new rendering runtime for Flutter. The Flutter
team’s believes this solves Flutter’s early-onset jank issue. Impeller
precompiles a smaller, simpler set of shaders at Engine build time so
they don’t compile at runtime.
Impeller has the following objectives:
- Predictable performance: Impeller compiles all shaders reflection
and offline at build time. It builds all pipeline state objects
upfront. The engine controls caching and caches explicitly.
- Instrumentable: Impeller tags and labels all graphics resources
like textures, and buffers. It can capture and persist animations
to disk without affecting per-frame rendering performance.
- Portable: Flutter doesn’t tie Impeller to a specific client
rendering API. You can author shaders once and convert them to
backend-specific formats as necessary.
- Leverages modern graphics APIs: Impeller uses, but doesn’t depend
on, features available in modern APIs like Metal and Vulkan.
- Leverages concurrency: Impeller can distribute single-frame
workloads across multiple threads if necessary.
Signed-off-by: Adam Duskett <adam.duskett@amarulasolutions.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>