Repository navigation
docs(馃摎): say which loops reach the display's full rate on iOS - #579
Merged
Merged
Conversation
A worklet or UI-runtime loop presents at the display's rate, 120 Hz on ProMotion, while React Native's JS-thread requestAnimationFrame runs at 60 Hz on iOS; apps from templates older than React Native 0.82 may still carry the iPhone 60 Hz cap, documented through Reanimated's guide. The example app opts in from its Podfile since react-native-test-app takes no extra plist keys from app.json.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Counterpart of react-native-skia PR 4273 (item 1 of react-native-skia discussion 4187).
No native change is needed here: a WebGPU view has no display link, the loop that calls
present()sets the frame rate. The docs now say so where frames are presented and on the Worklets page: a loop on the Reanimated UI runtime or on a worklet runtime runs at the display's rate (120 Hz on a ProMotion iPhone or iPad), React Native'srequestAnimationFrameon the JS thread runs at 60 Hz on iOS, and an app created from an Expo or React Native template before React Native 0.82 may still carry iOS's 60 Hz iPhone cap, pointing at Reanimated's "Enable 120 fps" guide for theInfo.plistopt-in (Expo prebuild sets it since 2023, the React Native template since 0.82).The example app opts in through a
pod installhook: react-native-test-app generates the Info.plist from its own template and ignoresios.infoPlistin app.json unless config plugins are listed. Verified with a pod install, the generated plist carriesCADisableMinimumFrameDurationOnPhone.