Skip to content

Scrolling is not true 120hz and feels laggy on ProMotion iPhone 13 #90675

@acoutts

Description

@acoutts

Even though the performance overlay says the frame timing should easily produce 120fps, it feels different than native iOS apps on the iPhone 13- a bit slower and janky. this is not sksl jank

I took some slow motion videos to demonstrate the scrolling performance issue. When you play it back, scrub frame by frame and you will see there is a lot more jank between screen updates on the flutter app vs the native messages one.

You'll see the performance profiler reporting 2.7ms/frame which in theory should mean it's capable of 370fps+ but as you can see there is a big difference between the frames on the native messages app and the flutter sample app.

Flutter app video (iPhone 13 Pro):
https://drive.google.com/file/d/1Qwqty1dCoGUyIfB5t5WeBf1s6czQhzFZ/view

Native iOS messages app (iPhone 13 Pro):
https://drive.google.com/file/d/1w5cw_PaIiMPTlyLuq2dKo86-KsWr-FEN/view

In case Google Drive applies some processing to the videos, here's a zip file with them untouched:
https://drive.google.com/file/d/1kqDEEI50Bs1uctgePvHKM-hJEE0QUhrA/view

Steps to Reproduce

Example app available here:
https://github.com/acoutts/flutter_120hz_bug

Expected results:
Flutter apps should run as smooth as native apps.

Actual results:
Flutter performance does not match the native experience on 120hz devices.

Logs
[✓] Flutter (Channel stable, 2.5.1, on macOS 11.6 20G165 darwin-x64, locale en-US)
    • Flutter version 2.5.1 at /Users/andrewcoutts/Projects/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision ffb2ecea52 (7 days ago), 2021-09-17 15:26:33 -0400
    • Engine revision b3af521a05
    • Dart version 2.14.2

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at /Users/andrewcoutts/Library/Android/sdk
    • Platform android-30, build-tools 30.0.2
    • ANDROID_HOME = /Users/andrewcoutts/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 13.0, Build version 13A233
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.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 1.8.0_242-release-1644-b3-6222593)

[✓] VS Code (version 1.52.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.12.1

[✓] VS Code (version 1.61.0-insider)
    • VS Code at /Applications/Visual Studio Code - Insiders.app/Contents
    • Flutter extension version 3.26.0

[✓] Connected device (4 available)
    • macOS (desktop)     • macos                     • darwin-x64     • macOS 11.6 20G165 darwin-x64
    • Chrome (web)        • chrome                    • web-javascript • Google Chrome 94.0.4606.61

• No issues found!

Metadata

Metadata

Labels

P2Important issues not at the top of the work listc: performanceRelates to speed or footprint issues (see "perf:" labels)customer: alibabacustomer: crowdAffects or could affect many people, though not necessarily a specific customer.customer: producte: device-specificOnly manifests on certain devicesengineflutter/engine related. See also e: labels.platform-iosiOS applications specificallyr: fixedIssue is closed as already fixed in a newer version

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions