Skip to content

Conversation

cortinico
Copy link
Contributor

Summary:

This backports useNativeEqualsInNativeReadableArrayAndroid and useNativeTransformHelperAndroid in the experimental channel for 0.81.

See #51869

This should alleviate some of the perf issue users are seeing on Android + Reanimated on NewArch 0.81 (and Expo SDK 54).

Changelog:

[ANDROID] [ADDED] - Add useNativeEqualsInNativeReadableArrayAndroid and useNativeTransformHelperAndroid feature flag to the experimental channel. This should alleviate some of the perf issue users are seeing on Android + Reanimated + NewArch on 0.81

Test Plan:

This is already shipped on main

javache and others added 3 commits September 2, 2025 16:35
Summary:
Pull Request resolved: #52611

We compare the current transform (represented as a ReadableArray) with the incoming one to know whether to invalidate. This can be expensive as it requires to materialize the entire transform data structure over JNI. Instead, we can delegate this comparison to native code, which can compare the underlying folly::dynamic directly.

Changelog: [Internal]

Reviewed By: NickGerleman

Differential Revision: D78340288

fbshipit-source-id: f44a054e234694c316fb080fe2dbc2017780123a
Summary:
Pull Request resolved: #52603

Processing transforms is expensive in Java, as it requires bridging the entire ReadableNativeArray/Map. Instead, we can use the existing parser logic `resolveTransform` logic to perform this operation in C++.

Ideally, we actually re-use the existing parsed transform from Props, that could be something we revisit after Props 2.0.

As a follow-up, we should consider also moving the matrix decomposition logic from MatrixMathHelper here, and make that the only information we send back to Java.

Changelog: [Internal]

Reviewed By: NickGerleman

Differential Revision: D78298588

fbshipit-source-id: a698ac8587ccfb2be04665747082398ccdde9294
Summary:
Pull Request resolved: #52640

Not having `TransformHelper.cpp` included in CMake is causing the C++ code to fail compiling.
This diff fixes it.

Changelog:
[Internal] [Changed] -

Reviewed By: cipolleschi, javache

Differential Revision: D78414015

fbshipit-source-id: 4900427a86eb38bfec10e5e385296d89c73e9051
Copy link

github-actions bot commented Sep 2, 2025

Job Summary for Gradle

Test All :: build_android
Gradle Root Project Requested Tasks Gradle Version Build Outcome Build Scan®
react-native-github publishAllToMavenTempLocal build 8.14.3 Build Scan not published

@gabrieldonadel
Copy link
Collaborator

Merging this for 0.81.2

@gabrieldonadel gabrieldonadel merged commit a346096 into 0.81-stable Sep 9, 2025
75 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. p: Facebook Partner: Facebook Partner Pick Request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants