-
Notifications
You must be signed in to change notification settings - Fork 24.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
React native does not support screen refresh rate #29333
Comments
This is very visible with apps that use something like React Navigation that has screen transitions. |
Hey there, it looks like there has been no activity on this issue recently. Has the issue been fixed, or does it still require the community's attention? This issue may be closed if no further activity occurs. You may also label this issue as a "Discussion" or add it to the "Backlog" and I will leave it open. Thank you for your contributions. |
I believe it still requires attention! |
Sadly, it still isn't supported :( |
Anything new that address this in 0.64? |
Is there anything new? |
On Android, the frame rate settings are available from API level 30 or higher. Currently, React Native 0.64 is using API level 29. It will be available only on further versions of RN, I guess. |
Anything new here?!?! |
Not yet. The RN 0.65 has launched with API level 29 (the same as the 0.64). |
what about ios? |
I think that iPhone 12 only supports 60 Hz |
iPad Pro has 120Hz. There are rumors that iPhone 13 will have 120Hz as well, which we'll see in a few weeks. UPDATE: iPhone 13 has 120Hz |
This would be really great to get this uncapped. Perhaps it will be on a system level on iOS? |
I think this will work on iOS already without RN core changing anything. |
According to the WWDC talk “Optimize for variable refresh rate displays”: “Most apps will work (with ProMotion) without any changes, but if your app performs frame-by-frame custom drawing then you will need to pay attention to these frame rate changes…”. |
Apple's docs for enabling ProMotion on iPhone 13 Pro & iPad Pro. It seems it's as simple as adding this plist entry, although I don't have such a device to test whether or not it works with an RN app: <key>CADisableMinimumFrameDurationOnPhone</key><true/> |
Apart from all this, there are a few places where 60 frames are hardcoded.
react-native/packages/rn-tester/RNTesterUnitTests/RCTNativeAnimatedNodesManagerTests.m Line 286 in 1465c8f
this? react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/FabricViewStateManager.java Line 65 in 1465c8f
react-native/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.java Line 38 in 657c48c
react-native/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm Line 217 in 8d0a2e7
react-native/ReactAndroid/src/main/java/com/facebook/react/animated/SpringAnimation.java Line 19 in 1465c8f
Line 460 in 1465c8f
|
so... any news? an app that runs at 60fps for someone who uses a 120fps smartphone is a little strange |
With adaptive frame rate, issues with not syncing with vsync are even more pronounced. On my S21 when "flicking" a list so that it continues scrolling after the finger is lifted the list starts to "jelly scroll" after lifting the finger, with content basically taking 2 steps forward 1 step back until the list completely stops. Locking the refresh-rate to 60Hz gets rid of that. |
I tried that and it doesn't work; I'm using react navigation and the transitions are choppy and don't appear smooth. |
I'm also using react native reanimated and they aren't 120fps. |
Now 14th March 2022, does react native support high refresh rate now? |
what is the latest status on CADisableMinimumFrameDurationOnPhone ? |
Is there an update on this issue ? |
Is there some fork that implements a solution? |
Bump |
BUMP |
Discord just transitioned their android app over to react native, and this issue has absolutely ruined the app for all devices with high refresh rate screens. All animations within the app now just look awful and stutter so much. high refresh rate screens have been in phones for almost half a decade and are pretty main steam now days (its even in apple products now which is when you know the tech has matured enough to be truly main steam) so I'm surprised that this is not much higher in the TODO list for future versions. It really does make that much of a difference. |
BUMP |
2 similar comments
BUMP |
BUMP |
I don't think spamming "bump" here is a good idea. Usually when there is a lot of spam in an issue, the maintainers close and lock it. |
It seems that you can have 120fps with reanimated 2 |
bump |
Is there any official comment on 120fps support? It is now over 12 months since iOS implemented promotion, and our react native animations stutter and feel juttery and low quality in comparison to every native app. Has react native hit a wall? |
Did you try it. It works
Get Outlook for iOS<https://aka.ms/o0ukef>
…________________________________
From: djendacott ***@***.***>
Sent: Thursday, October 13, 2022 6:03:16 PM
To: facebook/react-native ***@***.***>
Cc: William Bell ***@***.***>; Comment ***@***.***>
Subject: Re: [facebook/react-native] React native does not support screen refresh rate (#29333)
Is there any official comment on 120fps support?
It is now over 12 months since iOS implemented promotion, and our react native animations stutter and feel juttery and low quality in comparison to every native app.
Has react native hit a wall?
—
Reply to this email directly, view it on GitHub<#29333 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AGBTSQLO2LMUV6GPEFYFBL3WDCPMJANCNFSM4OWSXROA>.
You are receiving this because you commented.Message ID: ***@***.***>
|
What version of RN are you running? Are you talking about Reanimated or are you saying that the built-in Animated library works for you at 120fps? |
bump |
Any update? |
This comment was marked as spam.
This comment was marked as spam.
I am using Reanimated v3 but my app still runs at max 60fps with RN 0.72.2. Has anyone been able to run RN at over 60fps? |
Still no updates? |
I tried running my app, in my device it runs on 120hz, while in some other devices it runs in default 60hz |
some updates or plans to build it ? |
I can build it, but the issue is from 3 years ago. Somebody still interested in this issue? |
Still very interested in this issue! |
It does not seem to be optimized on Android until the current version of 0.73.5. I tried to create a new React Native project and run it on a real device, again up to 60 fps. Anything new that can address this in the recent version? By the way, I found that the Xiaohongshu(小红书) App in China can reach 120 fps, does anyone know how they did it? |
@fabOnReact if you're looking to work on this but need input, I believe the way forward would be to submit an RFC at https://github.com/react-native-community/discussions-and-proposals/, in case that's helpful. |
Any status update on this? |
Please provide all the information requested. Issues that do not follow this format are likely to stall.
Description
When running a react native app on a device that has a refresh rate other than 60, react native apps still run at 60 fps.
This means that if you have a device like a Samsung Galaxy S20, which runs at 120 fps, every react native app will feel sluggish, slow and underperforming.
React native should honor the screen's refresh rate and use that for rendering.
React Native version:
Run
react-native info
in your terminal and copy the results here.Steps To Reproduce
Provide a detailed list of steps that reproduce the issue.
Expected Results
I expect that the app runs smooth on all refresh rates above 60.
Snack, code example, screenshot, or link to a repository:
The text was updated successfully, but these errors were encountered: