Scrolling renders at 60 fps on a 90 Hz displays with Nightly (and Focus)
Categories
(Firefox for Android :: Performance, defect)
Tracking
()
| Performance Impact | low |
People
(Reporter: cpeterson, Unassigned)
Details
From github: https://github.com/mozilla-mobile/fenix/issues/20630.
Steps to reproduce
- Open any website in Nightly
- Scroll
Expected behaviour
Scrolling should be smooth, rendering at 90 fps.
Actual behaviour
Scrolling is slow and laggy, rendering only at 60 fps.
Device name
Realme 6
Android version
Android 10
Firefox release type
Firefox Nightly
Firefox version
92.0a1 (Build #2015825547)
Device logs
No response
Additional information
Firefox Nightly renders websites (including scrolling) at 60 fps even on a 90 Hz display. Native UI elements, such as the new tab page and settings are rendered at (as expected) 90 fps.
Firefox Focus shows the same problems as Nightly.Firefox Release version is completely fine, rendering websites at 90 fps.
Testing methodology:
Scroll a website on Release and Nightly. The difference in smoothness is clearly visible.
My phone has a battery saver mode which limits the display to 60 Hz. With battery saver on, Release and Nightly scrolling feels the same. The smoothness is the same as Nightly without battery saving.Additional confirmation from ADB, using command:
adb shell dumpsys display | grep -A 16 DisplayModeDirectorSample output when Release is open, or when Nightly is open on a native page, such as Settings:
DisplayModeDirector mSupportedModesByDisplay: 0 -> [{id=1, width=1080, height=2400, fps=90.0}, {id=2, width=1080, height=2400, fps=60.0}] mDefaultModeByDisplay: 0 -> {id=2, width=1080, height=2400, fps=60.0} mVotesByDisplay: -1: PRIORITY_USER_SETTING -> Vote{width=-1, height=-1, minRefreshRate=0.0, maxRefreshRate=90.0} 0: PRIORITY_APP_REQUEST_SIZE -> Vote{width=1080, height=2400, minRefreshRate=0.0, maxRefreshRate=Infinity} PRIORITY_APP_REQUEST_REFRESH_RATE -> Vote{width=-1, height=-1, minRefreshRate=90.0, maxRefreshRate=90.0} SettingsObserver mDefaultPeakRefreshRate: 60.0 AppRequestObserver mAppRequestedModeByDisplay: 0 -> {id=1, width=1080, height=2400, fps=90.0}Sample output when Nightly (or Focus) is open (with some website open):
mSupportedModesByDisplay: 0 -> [{id=1, width=1080, height=2400, fps=90.0}, {id=2, width=1080, height=2400, fps=60.0}] mDefaultModeByDisplay: 0 -> {id=2, width=1080, height=2400, fps=60.0} mVotesByDisplay: -1: PRIORITY_USER_SETTING -> Vote{width=-1, height=-1, minRefreshRate=0.0, maxRefreshRate=90.0} 0: PRIORITY_APP_REQUEST_SIZE -> Vote{width=1080, height=2400, minRefreshRate=0.0, maxRefreshRate=Infinity} PRIORITY_APP_REQUEST_REFRESH_RATE -> Vote{width=-1, height=-1, minRefreshRate=60.0, maxRefreshRate=60.0} SettingsObserver mDefaultPeakRefreshRate: 60.0 AppRequestObserver mAppRequestedModeByDisplay: 0 -> {id=2, width=1080, height=2400, fps=60.0}(Notice
PRIORITY_APP_REQUEST_REFRESH_RATEandmAppRequestedModeByDisplay)More info:
There is a very curious file on my phone located at
/system/etc/refresh_rate_config.xml
https://gist.github.com/Susko3/624b5d07614e8d8317e00cc6004d7221The relevant bits of the file:
... <!--0:90Hz, 1:60Hz --> ... <refresh_rate_config> ... <package>org.mozilla.firefox,0</package> <!--火狐浏览器--> ... </refresh_rate_config>So it could be that all versions are broken, just that Release version has an override (set by the phone itself) to force it to 90 Hz.
I'll report back if changing the package name affects this bug. I'll either compile the Release version myself, or 'clone' the Firefox app to a different package name.Versions tested:
Release:
90.1.3 (Build #2015824995) AC: 90.0.15, ef1436afb0 GV: 90.0.3-20210729144040 AS: 77.0.2Nightly:
92.0a1 (Build #2015825547) AC: 92.0.20210730143121, dca90e65d6 GV: 92.0a1-20210730093652 AS: 81.0.1Focus:
8.17.1 (Build #351931837 🦎 90.0-20210705185941)┆Issue is synchronized with this Jira Task
Change performed by the Move to Bugzilla add-on.
Comment 1•3 years ago
|
||
Just adding some info. Bug was exclusive to to Nightly until recently (up to two weeks ago), where it was added to Firefox Beta. Experiencing it on my 120Hz phone
Comment 2•3 years ago
|
||
The severity field is not set for this bug.
:cpeterson, could you have a look please?
For more information, please visit auto_nag documentation.
Updated•2 years ago
|
Comment 3•2 years ago
|
||
I just bought new OnePlus Pad (running at 144Hz) but my Firefox is running at 60Hz :(.
If there is anything Firefox can do to override this behavior (maybe in about:config), it would be great!
Comment 4•2 years ago
•
|
||
(In reply to juraj.masiar from comment #3)
I just bought new OnePlus Pad (running at 144Hz) but my Firefox is running at 60Hz :(.
If there is anything Firefox can do to override this behavior (maybe inabout:config), it would be great!
Interesting, my galaxy a54 runs at 120HZ even when scrolling. It only locks at 60HZ when I'm on battery saver. It will go to 60 when I bring up the keyboard though. If you want to try to force the refresh rate to see, we could try this through adb shell adb shell settings put global oneplus_screen_refresh_rate 0 (this won't work in android 12 and above though unless the device is rooted)
Updated•2 years ago
|
Comment 5•2 years ago
|
||
The Performance Impact Calculator has determined this bug's performance impact to be low. If you'd like to request re-triage, you can reset the Performance Impact flag to "?" or needinfo the triage sheriff.
Platforms: Android
[x] Affects animation smoothness
Comment 6•2 years ago
|
||
Please ignore my previous comment, the issue got resolved somehow and I forgot about reporting it here. Firefox runs smoothly now :)
Updated•2 years ago
|
Description
•