Mobile Impeller defaults landed earlier. Flutter 3.47 finishes the job on macOS, Windows, and Linux. Desktop apps now target Metal (macOS) and Vulkan (Windows/Linux) with a fixed shader set compiled at engine-build time.
What you gain
- No shader-compilation jank on first run of an animation.
- Signed Distance Function text — sharper glyphs on lower-density desktop displays.
- Wide Gamut Color on by default on macOS where hardware supports it.
Temporary Skia opt-outs
If a regression blocks you:
| Platform | Opt-out |
|---|---|
| macOS | FLTEnableImpeller=false in Info.plist |
| Windows | project.set_impeller_switch(flutter::ImpellerSwitch::Disabled) in main.cpp |
| Linux | fl_dart_project_set_enable_impeller(project, FALSE) in my_application.cc |
File a bug. Fallbacks are scheduled for removal.
What to retest
- Custom
FragmentShaders andsaveLayer-heavy effects. - Platform views and external textures.
- Print/export paths that assumed Skia color management.
Profile mode first. If a frame is still long, the split is still UI vs raster — Impeller moved work off the shader compile path, not off your build() method.
Originally published on FlutterCook. Read the latest version there — that copy is the one kept up to date.
Nhận xét
Đăng nhận xét