Skip to content

Performance regression with Impeller rendering compared to Skia backend #169423

Open

Description

@mixedteam236

Steps to reproduce

  1. Clone the repro project:

    git clone https://github.com/mixedteam236/impeller_test.git
    cd impeller_test
    
  2. Ensure to be on Flutter 3.32.0 (stable) or newer:

    flutter --version
    
  3. Run the app with Impeller enabled (release mode):

    flutter run --release
    
  4. Observe the animation performance after tapping the button at bottom right.

  5. Stop the app, then run with Impeller disabled (Skia default):

    flutter run --release --no-enable-impeller
    
  6. Compare the smoothness and reported FPS between both runs.

Expected behavior
With Impeller enabled, animations should be as smooth as (or smoother than) the Skia backend, maintaining a steady 60 FPS on supported devices in release mode.

Actual behavior
Impeller enabled: Frame rate drops significantly, with noticeable stuttering and frame skips.

Impeller disabled (Skia): Consistent 60 FPS, smooth animations across the board.

Code sample

Code sample

See GitHub repository: https://github.com/mixedteam236/impeller_test.git

Performance profiling on master channel

  • The issue still persists on the master channel

Timeline Traces

dart_devtools_2025-05-25_00_57_25.809.zip

Video demonstration

Video demonstration
impeller_enabled_recorded_with_camera impeller_not_enabled_recorded_with_camera
impeller_enabled_recorded_with_camera.mp4
impeller_not_enabled_recorded_with_camera.mp4
impeller_enabled impeller_not_enabled
impeller_enabled.mp4
impeller_not_enabled.mp4

What target platforms are you seeing this bug on?

Android

OS/Browser name and version | Device information

Operating System: Android 15

Model: ASUS Zenfone 10 (AI2302)

SoC: Qualcomm Snapdragon 8 Gen 2 (SM8550-AB, 4 nm)

CPU: Octa-core (1×3.2 GHz Cortex-X3 + 2×2.8 GHz Cortex-A715 + 2×2.8 GHz Cortex-A710 + 3×2.0 GHz Cortex-A510)

GPU: Adreno 740

Memory (RAM): 8 GB LPDDR5X

ABI / Architecture: arm64-v8a (64-bit)

Does the problem occur on emulator/simulator as well as on physical devices?

Unknown

Is the problem only reproducible with Impeller?

Yes

Logs

Logs

impeller_test_log.txt

Flutter Doctor output

Doctor output
[√] Flutter (Channel stable, 3.32.0, on Microsoft Windows [Version 10.0.26100.4061], locale de-DE) [638ms]
    • Flutter version 3.32.0 on channel stable at c:\Progs\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision be698c48a6 (5 days ago), 2025-05-19 12:59:14 -0700
    • Engine revision 1881800949
    • Dart version 3.8.0
    • DevTools version 2.45.1

[√] Windows Version (11 Home 64-bit, 24H2, 2009) [2,9s]

[√] Android toolchain - develop for Android devices (Android SDK version 35.0.0) [3,1s]
    • Android SDK at c:\Progs\AndroidSdk
    • Platform android-36, build-tools 35.0.0
    • ANDROID_HOME = c:\Progs\AndroidSdk
    • Java binary at: C:\Users\Me\AppData\Local\Programs\Android Studio\jbr\bin\java
      This is the JDK bundled with the latest Android Studio installation on this machine.
      To manually set the JDK path, use: `flutter config --jdk-dir="path/to/jdk"`.
    • Java version OpenJDK Runtime Environment (build 21.0.6+-13368085-b895.109)
    • All Android licenses accepted.

[√] Chrome - develop for the web [337ms]
    • Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

[X] Visual Studio - develop Windows apps [335ms]
    X Visual Studio not installed; this is necessary to develop Windows apps.
      Download at https://visualstudio.microsoft.com/downloads/.
      Please install the "Desktop development with C++" workload, including all of its default components

[√] Android Studio (version 2024.3.2) [96ms]
    • Android Studio at C:\Users\Me\AppData\Local\Programs\Android Studio
    • 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 21.0.6+-13368085-b895.109)

[√] IntelliJ IDEA Community Edition (version 2024.2) [94ms]
    • IntelliJ at D:\Progs\IntelliJ
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin version 242.26775.15

[√] IntelliJ IDEA Community Edition (version 2025.1) [51ms]
    • IntelliJ at C:\Users\Me\AppData\Local\Programs\IntelliJ IDEA Community Edition
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin version 251.25410.28

[√] Connected device (4 available) [314ms]
    • ASUS AI2302 (mobile) • RCAIB700B06699H • android-arm64  • Android 15 (API 35)
    • Windows (desktop)    • windows         • windows-x64    • Microsoft Windows [Version 10.0.26100.4061]
    • Chrome (web)         • chrome          • web-javascript • Google Chrome 136.0.7103.114
    • Edge (web)           • edge            • web-javascript • Microsoft Edge 135.0.3179.54

[√] Network resources [340ms]
    • All expected network resources are available.

! Doctor found issues in 1 category.

Activity

  1. added
    in triagePresently being triaged by the triage team
    and removed on May 26, 2025
  2. tirth-patel-nc commented on May 26, 2025

    @tirth-patel-nc
    Member

    Triage Report

    I was able to reproduce the issue using the provided code sample on the stable (3.29.3), stable (3.32.0) and master (3.33.0-1.0.pre.211) channels. Tested on Pixel 6a (real device with --release).

    with --no-enable-impeller it works better.

    stable (3.29.3) - flutter doctor -v
    [✓] Flutter (Channel stable, 3.29.3, on macOS 15.4.1 24E263 darwin-arm64, locale
        en-IN) [970ms]
        • Flutter version 3.29.3 on channel stable at
          /Users/tirthpatel/Development/flutter_stable/flutter
        • Upstream repository https://github.com/flutter/flutter.git
        • Framework revision ea121f8859 (4 weeks ago), 2025-04-11 19:10:07 +0000
        • Engine revision cf56914b32
        • Dart version 3.7.2
        • DevTools version 2.42.3
    
    [✓] Android toolchain - develop for Android devices (Android SDK version 36.0.0)
        [855ms]
        • Android SDK at /Users/tirthpatel/Library/Android/sdk
        • Platform android-36, build-tools 36.0.0
        • Java binary at: /Applications/Android
          Studio.app/Contents/jbr/Contents/Home/bin/java
          This is the JDK bundled with the latest Android Studio installation on
          this machine.
          To manually set the JDK path, use: `flutter config
          --jdk-dir="path/to/jdk"`.
        • Java version OpenJDK Runtime Environment (build 21.0.6+-13355223-b631.42)
        • All Android licenses accepted.
    
    [✓] Xcode - develop for iOS and macOS (Xcode 16.3) [556ms]
        • Xcode at /Applications/Xcode.app/Contents/Developer
        • Build 16E140
        • CocoaPods version 1.16.2
    
    [✓] Chrome - develop for the web [9ms]
        • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
    
    [✓] Android Studio (version 2024.3) [9ms]
        • 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 21.0.6+-13355223-b631.42)
    
    [✓] VS Code (version 1.99.3) [8ms]
        • VS Code at /Applications/Visual Studio Code.app/Contents
        • Flutter extension can be installed from:
          🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter
    
    [✓] Connected device (3 available) [5.5s]
        • macOS (desktop)                 • macos                 • darwin-arm64   •
          macOS 15.4.1 24E263 darwin-arm64
        • Mac Designed for iPad (desktop) • mac-designed-for-ipad • darwin         •
          macOS 15.4.1 24E263 darwin-arm64
        • Chrome (web)                    • chrome                • web-javascript •
          Google Chrome 135.0.7049.115
    
    [✓] Network resources [559ms]
        • All expected network resources are available.
    
    • No issues found!
    
    stable (3.32.0) - flutter doctor -v
    [✓] Flutter (Channel stable, 3.32.0, on macOS 15.4.1 24E263 darwin-arm64, locale en-IN) [446ms]
        • Flutter version 3.32.0 on channel stable at /Users/tirthpatel/Development/flutter_stable_latest/flutter
        • Upstream repository https://github.com/flutter/flutter.git
        • Framework revision be698c48a6 (34 hours ago), 2025-05-19 12:59:14 -0700
        • Engine revision 1881800949
        • Dart version 3.8.0
        • DevTools version 2.45.1
    
    [✓] Android toolchain - develop for Android devices (Android SDK version 36.0.0) [827ms]
        • Android SDK at /Users/tirthpatel/Library/Android/sdk
        • Platform android-36, build-tools 36.0.0
        • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
          This is the JDK bundled with the latest Android Studio installation on this machine.
          To manually set the JDK path, use: `flutter config --jdk-dir="path/to/jdk"`.
        • Java version OpenJDK Runtime Environment (build 21.0.6+-13355223-b631.42)
        • All Android licenses accepted.
    
    [✓] Xcode - develop for iOS and macOS (Xcode 16.3) [448ms]
        • Xcode at /Applications/Xcode.app/Contents/Developer
        • Build 16E140
        • CocoaPods version 1.16.2
    
    [✓] Chrome - develop for the web [9ms]
        • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
    
    [✓] Android Studio (version 2024.3) [8ms]
        • 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 21.0.6+-13355223-b631.42)
    
    [✓] VS Code (version 1.100.2) [8ms]
        • VS Code at /Applications/Visual Studio Code.app/Contents
        • Flutter extension version 3.110.0
    
    [✓] Connected device (2 available) [5.6s]
        • macOS (desktop) • macos  • darwin-arm64   • macOS 15.4.1 24E263 darwin-arm64
        • Chrome (web)    • chrome • web-javascript • Google Chrome 136.0.7103.114
    
    [✓] Network resources [1,624ms]
        • All expected network resources are available.
    
    • No issues found!
    
    master (3.33.0-1.0.pre.211) - flutter doctor -v
    [✓] Flutter (Channel master, 3.33.0-1.0.pre.211, on macOS 15.4.1 24E263 darwin-arm64, locale en-IN) [2.9s]
        • Flutter version 3.33.0-1.0.pre.211 on channel master at /Users/tirthpatel/Development/flutter_master/flutter
        • Upstream repository https://github.com/flutter/flutter.git
        • Framework revision 1430fc8e8d (28 hours ago), 2025-05-24 23:59:26 -0400
        • Engine revision 1430fc8e8d
        • Dart version 3.9.0 (build 3.9.0-169.0.dev)
        • DevTools version 2.46.0
    
    [✓] Android toolchain - develop for Android devices (Android SDK version 36.0.0) [4.5s]
        • Android SDK at /Users/tirthpatel/Library/Android/sdk
        • Emulator version 35.4.9.0 (build_id 13025442) (CL:N/A)
        • Platform android-36, build-tools 36.0.0
        • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
          This is the JDK bundled with the latest Android Studio installation on this machine.
          To manually set the JDK path, use: `flutter config --jdk-dir="path/to/jdk"`.
        • Java version OpenJDK Runtime Environment (build 21.0.6+-13355223-b631.42)
        • All Android licenses accepted.
    
    [✓] Xcode - develop for iOS and macOS (Xcode 16.3) [814ms]
        • Xcode at /Applications/Xcode.app/Contents/Developer
        • Build 16E140
        • CocoaPods version 1.16.2
    
    [✓] Chrome - develop for the web [8ms]
        • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
    
    [✓] Android Studio (version 2024.3) [8ms]
        • 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 21.0.6+-13355223-b631.42)
    
    [✓] VS Code (version 1.100.2) [7ms]
        • VS Code at /Applications/Visual Studio Code.app/Contents
        • Flutter extension version 3.110.0
    
    [✓] Connected device (4 available) [5.7s]
        • sdk gphone64 arm64 (mobile) • emulator-5554                        • android-arm64  • Android 16 (API 36) (emulator)
        • iPhone 16 Plus (mobile)     • B19185FD-0093-4E49-B587-16642A3EC7D3 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-18-4 (simulator)
        • macOS (desktop)             • macos                                • darwin-arm64   • macOS 15.4.1 24E263 darwin-arm64
        • Chrome (web)                • chrome                               • web-javascript • Google Chrome 136.0.7103.114
    
    [✓] Network resources [430ms]
        • All expected network resources are available.
    
    • No issues found!
    
  3. added
    engineflutter/engine related. See also e: labels.
    e: impellerImpeller rendering backend issues and features requests
    c: performanceRelates to speed or footprint issues (see "perf:" labels)
    perf: speedPerformance issues related to (mostly rendering) speed
    platform-androidAndroid applications specifically
    has reproducible stepsThe issue has been confirmed reproducible and is ready to work on
    and removed
    in triagePresently being triaged by the triage team
    on May 26, 2025
  4. jonahwilliams commented on May 30, 2025

    @jonahwilliams
    Contributor

    The performance problem we're running into here has to do with non-symmetrical rrect blurs. We can't use the fast path approach and so we fall back to a generic gaussian. I think this will keep coming up. For blurs of generic geometry masks we need a faster approach.

  5. added
    P2Important issues not at the top of the work list
    on Jun 2, 2025
  6. Zabadam commented on Nov 13, 2025

    @Zabadam
    Contributor

    I have been revising a demo app for a package I was writing that involved a lot of color math and palette generation. While the demo could be improved logically for better performance, it behaves smoothly [enough] on Windows and Android with --no-enable-impellerbut chugs down to a slideshow with Impeller enabled.

    I am not using any explicit clip rects, so I don't think my performance degradation is directly related to this one; but the title of the issue matches my problem.

    Should I form a new issue for my case?

    Left: Skia | Right: Impeller

    20251113_120035_1.mp4
  7. tirth-patel-nc commented on Nov 14, 2025

    @tirth-patel-nc
    Member

    @Zabadam you may file a fresh issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Important issues not at the top of the work listc: performanceRelates to speed or footprint issues (see "perf:" labels)e: impellerImpeller rendering backend issues and features requestsengineflutter/engine related. See also e: labels.found in release: 3.32Found to occur in 3.32found in release: 3.33Found to occur in 3.33has reproducible stepsThe issue has been confirmed reproducible and is ready to work onperf: speedPerformance issues related to (mostly rendering) speedplatform-androidAndroid applications specificallyteam-engineOwned by Engine teamtriaged-engineTriaged by Engine team

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions