Skip to content

[iOS] switch iOS to slimpeller variant. - #163808

Merged
auto-submit[bot] merged 8 commits into
flutter:masterfrom
jonahwilliams:remove_flags
Feb 24, 2025
Merged

[iOS] switch iOS to slimpeller variant.#163808
auto-submit[bot] merged 8 commits into
flutter:masterfrom
jonahwilliams:remove_flags

Conversation

@jonahwilliams

@jonahwilliamsjonahwilliams commented Feb 21, 2025

Copy link
Copy Markdown
Contributor

Now that skia can no longer be used on both iOS devices and Simulators, we can switch the iOS engine to the "slimpeller" variant which removes some (not all!) of the Skia dependencies. This should reduce binary size and build time.

I also did some cleanups as some tests we're still opting into Skia behaviors (though not actually running skia) and we now flag these as errors.

@github-actionsgithub-actionsBot added platform-ios iOS applications specifically engine flutter/engine related. See also e: labels. team-ios Owned by iOS platform team labels Feb 21, 2025
@jonahwilliams
jonahwilliams marked this pull request as ready for review February 21, 2025 22:49

@jmagmanjmagman left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎉

The iOS scenario tests used run twice, once with Impeller and then again with "Skia" (I guess both Impeller now), looks like you got some of it in flutter-team-archive/engine#56706 but there's still a few things to clean up:


https://github.com/flutter/flutter/blob/master/engine/src/flutter/testing/ios_scenario_app/ios/Scenarios/Scenarios/Info_Skia.plist

You could also file an issue and I can look.

@jonahwilliams

Copy link
Copy Markdown
ContributorAuthor

From looking at the CI config I don't think we're running it twice anymore, just three times instead:

  • ios_debug_unopt_sim
  • ios_debug_unopt_sim_arm64
  • ios_debug_unopt_sim_arm64_extension_safe

If that isn't expected let me know and I'll file a bug. I don't see two invocations per target though, just one.

@chinmaygardechinmaygarde left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎉

@jonahwilliamsjonahwilliams added the autosubmit Merge PR when tree becomes green via auto submit App label Feb 24, 2025
@auto-submit
auto-submitBot added this pull request to the merge queueFeb 24, 2025
Merged via the queue into flutter:master with commit a488d10Feb 24, 2025
@flutter-dashboardflutter-dashboardBot removed the autosubmit Merge PR when tree becomes green via auto submit App label Feb 24, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 25, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 25, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 25, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 25, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 25, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 25, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 25, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 26, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 26, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 26, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 26, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 26, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 26, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 27, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 27, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 20, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 20, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 21, 2025
cbracken added a commit to cbracken/flutter that referenced this pull request Aug 10, 2026
`GoldenTestManager` had an option to choose between an `impeller_` and a
bare golden name prefix based on the `FLTEnableImpeller` key in the
app's Info.plist, and the app had an `Info_Skia.plist` that set this to
false.
Both of those have been dead code since 2025-02-25 when we stopped
reading `FLTEnableImpeller` in flutter#163808, which switched iOS to the
slimpeller variant, and no build configuration ever pointed
`INFOPLIST_FILE` at `Info_Skia.plist`. It it was only listed in the
project navigator for manual use. The only remaining reader of that flag
in the tree is the macOS embedder.
This removes the branch, both `Info_Skia.plist` files, and the now-dead
`FLTEnableImpeller` key from the Scenarios app.
We keep the `impeller_` tag on the goldens even though it's redundant,
since that involves touching a bunch of PNGs. If we ever need to do
that, we can do it separately.
No test changes, or all test changes depending how you look at it, but
either way this is dead code removal.
Issue: flutter#190041
Issue: flutter#112232
pullBot pushed a commit to Mattlk13/flutter that referenced this pull request Aug 11, 2026
`GoldenTestManager` had an option to choose between an `impeller_` and a
bare golden name prefix based on the `FLTEnableImpeller` key in the
app's Info.plist, and the app had an `Info_Skia.plist` that set this to
false.
Both of those have been dead code since 2025-02-25 when we stopped
reading `FLTEnableImpeller` in flutter#163808, which switched iOS to the
slimpeller variant, and no build configuration ever pointed
`INFOPLIST_FILE` at `Info_Skia.plist`. It it was only listed in the
project navigator for manual use. The only remaining reader of that flag
in the tree is the macOS embedder.
This removes the branch, both `Info_Skia.plist` files, and the now-dead
`FLTEnableImpeller` key from the Scenarios app.
We keep the `impeller_` tag on the goldens even though it's redundant,
since that involves touching a bunch of PNGs. If we ever need to do
that, we can do it separately.
No test changes, or all test changes depending how you look at it, but
either way this is dead code removal.
Issue: flutter#190041
Issue: flutter#112232
<!--
Thanks for filing a pull request!
Reviewers are typically assigned within a week of filing a request.
To learn more about code review, see our documentation on Tree Hygiene:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
-->
## Pre-launch Checklist
- [X] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [X] I read the [AI contribution guidelines] and understand my
responsibilities, or I am not using AI tools.
- [X] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [X] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [X] I signed the [CLA].
- [X] I listed at least one issue that this PR fixes in the description
above.
- [X] I updated/added relevant documentation (doc comments with `///`).
- [X] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [X] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [X] All existing and new tests are passing.
If you need help, consider asking for advice on the #hackers-new channel
on [Discord].
If this change needs to override an active code freeze, provide a
comment explaining why. The code freeze workflow can be overridden by
code reviewers. See pinned issues for any active code freezes with
guidance.
**Note**: The Flutter team is currently trialing the use of [Gemini Code
Assist for
GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).
Comments from the `gemini-code-assist` bot should not be taken as
authoritative feedback from the Flutter team. If you find its comments
useful you can update your code accordingly, but if you are unsure or
disagree with the feedback, please feel free to wait for a Flutter team
member's review for guidance on which automated comments should be
addressed.
<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[AI contribution guidelines]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

engineflutter/engine related. See also e: labels.platform-iosiOS applications specificallyteam-iosOwned by iOS platform team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@jonahwilliams@jmagman@chinmaygarde