flutter
flutter copied to clipboard
[Impeller] performance degradation (some times flickering) on MotoG52 y Samsung A52
Steps to reproduce
Tool-chain:
- Xcode 16.0 Beta 4.
- Android Studio 2024.1.2 RC 1
- 3.24.0-1.0.pre.516 (Channel master)
- MotoG52 (Android 13) - Samsung A52 (Android 14 - OneUI 6.1)
- Clone the Wonderous app repository from GitHub.
- Navigate to the root directory of the project and launch the app in profile mode targeting a device using the command:
flutter run --profileSo you can later compare metrics. - Navigate through different screens of the app and record the metrics observed (in this impeller is enabled by default)
- Disable impeller by adding
<meta-data android:name="io.flutter.embedding.android.EnableImpeller" android:value="false" />to the manifest - Run the in profile mode again:
flutter run --profile - Compare results.
Expected results
Similar or better performance is expected while running the app using Impeller.
Actual results
Noticeable drop in FPS, increase in Janks & Shader Compilation. Sometimes flickering was also observed while navigating.
Results:
Motorola G52 - Android 13:
Impeller ENABLED
Impeller DISABLED
Results:
Samsung A52 - Android 14:
Impeller ENABLED
Impeller DISABLED
Additionally, not 100% consistently, we were noticing flickering.
Not sure if it will be noted on video, but here is a recording on The Samsung Galaxy A52.
https://github.com/user-attachments/assets/9c557778-74cf-47f2-b3a2-1c96f7542834
Code sample
Code sample
[Paste your code here]
Screenshots or Video
Screenshots / Video demonstration
[Upload media here]
Logs
Logs
[Paste your logs here]
Flutter Doctor output
Doctor output
[✓] Flutter (Channel master, 3.24.0-1.0.pre.516, on macOS 14.5 23F79 darwin-arm64, locale en-US)
• Flutter version 3.24.0-1.0.pre.516 on channel master at /Users/josefinadiz/flutter/flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision d67f2cdebb (25 hours ago), 2024-08-08 13:51:06 -0400
• Engine revision 3978ddd8d7
• Dart version 3.6.0 (build 3.6.0-128.0.dev)
• DevTools version 2.38.0
[✓] Android toolchain - develop for Android devices (Android SDK version 35.0.0)
• Android SDK at /Users/josefinadiz/Library/Android/sdk
• Platform android-35, build-tools 35.0.0
• Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 17.0.11+0-17.0.11b1207.24-11852314)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 16.0)
• Xcode at /Applications/Xcode-beta.app/Contents/Developer
• Build 16A5221g
• CocoaPods version 1.15.2
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 2024.1)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 17.0.11+0-17.0.11b1207.24-11852314)
[✓] VS Code (version 1.92.1)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.94.0
[✓] Connected device (3 available)
• macOS (desktop) • macos • darwin-arm64 • macOS 14.5 23F79 darwin-arm64
• Mac Designed for iPad (desktop) • mac-designed-for-ipad • darwin • macOS 14.5 23F79 darwin-arm64
• Chrome (web) • chrome • web-javascript • Google Chrome 127.0.6533.100
[✓] Network resources
• All expected network resources are available.
• No issues **found!**
Can you upload the timeline from the impeller version? I'd want to see if this is using hybrid composition or TLHC based maps.
Sure, it is hard to show everything on a screenshot so I'm attaching the .json export as well, hope that helps, otherwise please let me know if we need to search for anything specific on the timeline view.
Thanks!
Thanks! We'll look into getting one of those devices and profiling it locally. Doesn't look like a platform view issue.
Similar issue on Flutter 3.27 and Android https://github.com/flutter/flutter/issues/161316
Can you upload the timeline from the impeller version? I'd want to see if this is using hybrid composition or TLHC based maps.
Hello, I’ve just commented here: https://github.com/flutter/flutter/issues/152263#issuecomment-2578207595.
While we don’t experience issues with TLHC, HC is currently unusable in its present state. If a fix is not straightforward, could you please consider allowing us to filter out the changes introduced in 3.27? We’d prefer not to remain stuck on 3.24, but at the moment, the issues with HC prevent us from upgrading to 3.27.
I believe the flickering problems observed on these devices should be fixed in 3.29, which should be released to beta in the next few weeks. I'm still tracking down performance issues on the older mali devices.
~I think that happen only android side if platfrom view implementation is Hybrid Composition, where rendering engine is impeller or skia doesn't matter.~
This issue is assigned to @jonahwilliams but has had no recent status updates. Please consider unassigning this issue if it is not going to be addressed in the near future. This allows people to have a clearer picture of what work is actually planned. Thanks!