|
1 | 1 | # Frequently Asked Questions
|
2 | 2 |
|
3 |
| -* How do you run `impeller_unittests` with Playgrounds enabled? |
4 |
| - * Playgrounds in the `impeller_unittests` harness can be enabled in one of |
5 |
| - three ways: |
6 |
| - * Edit `gn args` directly and add `impeller_enable_playground = true`. |
7 |
| - * Add the `--enable-impeller-playground` flag to your `./flutter/tools/gn` |
8 |
| - invocation. |
9 |
| - * Set the `FLUTTER_IMPELLER_ENABLE_PLAYGROUND` to `1` before invoking |
10 |
| - `./flutter/tools/gn`. Only do this if you frequently work with Playgrounds |
11 |
| - and don't want to have to set the flags manually. Also, it would be a bad |
12 |
| - idea to set this environment variable on CI. |
| 3 | +* How do I enable Impeller to try it out myself? |
| 4 | + * See the instructions in the README on how to [try Impeller in |
| 5 | + Flutter](https://github.com/flutter/engine/tree/main/impeller#try-impeller-in-flutter). |
| 6 | + * Support on some platforms is further along than on others. The current |
| 7 | + priority for the team is to support iOS, Android, Desktops, and Embedder API |
| 8 | + users (in that rough order). |
| 9 | +* I am running into issues when Impeller is enabled, how do I report them? |
| 10 | + * Like any other Flutter issue, you can report them on the [GitHub issue |
| 11 | + tracker](https://github.com/flutter/flutter/issues/new/choose). |
| 12 | + * Please explicitly mention that this is an Impeller specific regression. You |
| 13 | + can quickly swap between the Impeller and Skia backends using the command |
| 14 | + line flag flag detailed in [section in the README on how to try |
| 15 | + Impeller](https://github.com/flutter/engine/tree/main/impeller#try-impeller-in-flutter). |
| 16 | + * Reduced test cases are the most useful. |
| 17 | + * Please also report any performance regressions. |
| 18 | +* What does it mean for an Impeller platform to be "in preview". How long will |
| 19 | + be the preview last? |
| 20 | + * The team is focused on getting one platform right at time. This includes |
| 21 | + ensuring all fidelity issues are fixed, performance issues addressed, and |
| 22 | + compatibility with plugins guaranteed. |
| 23 | + * When the team believes that the majority of Flutter applications will |
| 24 | + benefit from Impeller on a specific platform, the backend will be declared |
| 25 | + to be in preview. |
| 26 | + * During the preview, Flutter developers will need to opt in to using |
| 27 | + Impeller. |
| 28 | + * The top priority of the team will be to address issues reported by |
| 29 | + developers opting into the preview. The team wants the preview phase for a |
| 30 | + platform to be as short as possible. |
| 31 | + * Once major issues reported by platforms in preview become manageable, the |
| 32 | + preview ends and Impeller becomes the default rendering backend. |
| 33 | + * Besides working on fixing issues reported on platforms in preview, and |
| 34 | + working on supporting additional platforms, the team is also undertaking a |
| 35 | + high-touch exercise of migrating large existing Flutter applications to use |
| 36 | + Impeller. The team will find and fix any issues it encounters during this |
| 37 | + exercise. |
| 38 | + * The length of the preview will depend on the number and nature of the issues |
| 39 | + filed by developers and discovered by the team. |
| 40 | + * Even once the preview ends, the developer can opt into the legacy rendering |
| 41 | + backend for a short period of time. The legacy backend will be removed after |
| 42 | + this period. |
| 43 | +* What can I expect when I opt in to using Impeller? |
| 44 | + * A high level overview of the status of project is [present on the |
| 45 | + wiki](https://github.com/flutter/flutter/wiki/Impeller#status). |
| 46 | + * All Impeller related work items are tracked on a [project specific dashboard |
| 47 | + on GitHub](https://github.com/orgs/flutter/projects/21). |
| 48 | + * The team tracks known platform specific issues in their own milestones: |
| 49 | + * [iOS](https://github.com/flutter/flutter/milestone/77) |
| 50 | + * [Android](https://github.com/flutter/flutter/milestone/76) |
13 | 51 | * Does Impeller use Skia for rendering?
|
14 | 52 | * No. Impeller has no direct dependencies on Skia.
|
15 | 53 | * When running with Impeller, Flutter does not create a Skia graphics context.
|
|
45 | 83 | priority at this time for the small team working on Impeller.
|
46 | 84 | * We are aware that these priorities might change in the future. There have
|
47 | 85 | been sanity checks to ensure that the Impeller API can be ported to WASM and
|
48 |
| - also that Impeller shaders can be [compiled to WGSL](https://github.com/chinmaygarde/wgsl_sandbox) |
49 |
| - for eventual WebGPU support. |
| 86 | + also that Impeller shaders can be [compiled to |
| 87 | + WGSL](https://github.com/chinmaygarde/wgsl_sandbox) for eventual WebGPU |
| 88 | + support. |
50 | 89 | * How will Impeller affect the way in which Flutter applications are created and
|
51 | 90 | packaged?
|
52 | 91 | * It won't.
|
|
59 | 98 | includes all precompiled shaders.
|
60 | 99 | * Impeller is compiled into the Flutter engine. It is currently behind a flag
|
61 | 100 | as development progresses.
|
62 |
| -* How do I enable Impeller to try it out myself? |
63 |
| - * See the instructions in the README on how to [try Impeller in |
64 |
| - Flutter](https://github.com/flutter/engine/tree/main/impeller#try-impeller-in-flutter). |
| 101 | +* How do you run `impeller_unittests` with Playgrounds enabled? |
| 102 | + * Playgrounds in the `impeller_unittests` harness can be enabled in one of |
| 103 | + three ways: |
| 104 | + * Edit `gn args` directly and add `impeller_enable_playground = true`. |
| 105 | + * Add the `--enable-impeller-playground` flag to your `./flutter/tools/gn` |
| 106 | + invocation. |
| 107 | + * Set the `FLUTTER_IMPELLER_ENABLE_PLAYGROUND` to `1` before invoking |
| 108 | + `./flutter/tools/gn`. Only do this if you frequently work with Playgrounds |
| 109 | + and don't want to have to set the flags manually. Also, it would be a bad |
| 110 | + idea to set this environment variable on CI. |
0 commit comments