Skip to content

Stage NativeXr EndFrame fix from Babylon Native fork - #8

Closed
CedricGuillemet wants to merge 51 commits into
masterfrom
cedricguillemet-nativexr-staging-package
Closed

CedricGuillemet wants to merge 51 commits into
masterfrom
cedricguillemet-nativexr-staging-package

Conversation

@CedricGuillemet

Copy link
Copy Markdown
Owner

Describe the change

Pin Babylon Native to CedricGuillemet/BabylonNative, branch nativexr-endframe-fix, at exact commit b85d4f0b3c0735ee7c8318188095a2b78d4df2ad. This is the fix in BabylonJS/BabylonNative#1957, which queues EndFrame during FrameStart to avoid racing frame-scope release.

Update the shared CMake FetchContent repository and SHA so Android, iOS, and Windows resolve the same immutable fork commit. The pinned Babylon Native tree has no submodules requiring URL rewrites. The intentionally failing nativexr-endframe-repro branch is not used.

This draft PR is for testing a CI-built staging package in an Android app, not for publishing a release. Both PR head and base are in CedricGuillemet/BabylonReactNative-1.

The existing PR Build workflow runs on draft PRs targeting master and invokes the package artifact workflows. Known legacy CI blockers remain: the reusable artifact workflows use retired actions/upload-artifact@v2, and the iOS/Android workflow selects Xcode 13.4.1 on macos-latest. No staging package is claimed to exist until CI successfully produces its artifacts.

Screenshots

N/A - dependency pin only.

Documentation

N/A - staging-only dependency pin; no public API or usage changes.

Testing

  • git diff --check - passed before committing.
  • gh api repos/CedricGuillemet/BabylonNative/branches/nativexr-endframe-fix --jq '{ref: .name, sha: .commit.sha}' - passed; confirmed b85d4f0b3c0735ee7c8318188095a2b78d4df2ad.
  • Native package builds and the README's manual Android/iOS Playground checks were not run locally; this PR requests CI builds for staging. The known workflow blockers above may need resolution before artifacts are available.

CedricGuillemet and others added 30 commits December 8, 2023 22:33
* up BabylonNative for Flip after render Change

* ios cmake update

* glsl
This updates BN to the latest commit, which includes the fix for the XR flickering on Android.
* baseline: adding RNTA vanilla, it works

* wire in the babylon stuff

* a couple of temp files

* minor cleanup, bump to latest 73 and RNTA

* add a quick readme

* Update Apps/BRNPlayground/macos/Podfile

Co-authored-by: Tommy Nguyen <4123478+tido64@users.noreply.github.com>

* Update Apps/BRNPlayground/postinstall.js

Co-authored-by: Tommy Nguyen <4123478+tido64@users.noreply.github.com>

* Update Apps/BRNPlayground/.gitignore

Co-authored-by: Tommy Nguyen <4123478+tido64@users.noreply.github.com>

* get CMake to build

* add xcworkspace

* bump to latest RN and RNTA

---------

Co-authored-by: Tommy Nguyen <4123478+tido64@users.noreply.github.com>
* Update BN and BJS versions

* xcode version

* xcode 15.0.1

* bjs version, arcana path fix

* bgfx.cmake

* node 12 ???
* baseline: adding RNTA vanilla, it works

* wire in the babylon stuff

* a couple of temp files

* minor cleanup, bump to latest 73 and RNTA

* add a quick readme

* Update Apps/BRNPlayground/macos/Podfile

Co-authored-by: Tommy Nguyen <4123478+tido64@users.noreply.github.com>

* Update Apps/BRNPlayground/postinstall.js

Co-authored-by: Tommy Nguyen <4123478+tido64@users.noreply.github.com>

* Update Apps/BRNPlayground/.gitignore

Co-authored-by: Tommy Nguyen <4123478+tido64@users.noreply.github.com>

* get CMake to build

* add xcworkspace

* bump to latest RN and RNTA

* RNTA + CI

* npm install

* java 17 instead of 21(default) because of this issue:
 jdk.tools.jlink.plugin.PluginException: ModuleTarget is malformed: platformString missing delimiter: android

* Windows build

* npm install package

* msbuild typo

* more windows build steps

* build steps in CI

* path typo

* nuget restore

* BN build

* vcxproj paths

* x86

* back to x64

* test w/o  --use-nuget

* patch rnpermissions vcxproj

* back with use-nuget

* permissions vcxproj

* vcxproj

* packages.config

* cppwinrt

* merge .sln

* do not build bundle

* props test

* import path

* props path again

* put back libs in

* cppwinrt

* cmake import props

* project imports

* windows sdk props

* windows sdk version

* bump rn permissions

* cleaning

* bundle build

* ios/android builds

* windows build debug

* nuget

* nuget

* metro config test

* watchman

* choco watchman

* is this useful?

* up rnta

* artifact test

* ios/android

* build output dir

* clean up

* build windows

* build fixes

* windows build/cppwinrt

* kick build

---------

Co-authored-by: Lorenzo Sciandra <lsciandra@microsoft.com>
Co-authored-by: Lorenzo Sciandra <lorenzo.sciandra@gmail.com>
Co-authored-by: Tommy Nguyen <4123478+tido64@users.noreply.github.com>
* bump NDK version

* Revert "bump NDK version"

This reverts commit 93784b8.

* composite action to free up space

* moved action

* checkout then free up space

* using statement

* composite

* missing free space for ios_android.yml

* xcode 15.4 as default

* up RNTA, fix metro.config.js

* fix double copy/paste

* upload artifact acion
* Test build

* no rnta

* typo

* BN update

* update libraries after bgfx update

* graphics warnings

* disable warnings for Windows build

* xcode scheme

* no nativexr for Windows, add schemes for iOS in validation step

* no xr for msvc

* removed Windows XR support

* NDK min is 23.1.7779620

* disable warnings xr android

* no warning nativeCamera Android

* disable XMLHttpRequest warnings

* even less warnings

* brings back rnta

* windows rnta

* action cache version

* windows build link path

* bimg and bx path

* removed nativexr from linking

* xr leftovers

* lib webp windows

* disable webp windows

* Scheduling

* scheduling path

* actions/download-artifact version

* test Xcode 16.2

* Test Node 18

* up cmake version

* bump to 0.71

* no webp

* removed webp

* moved back to a version that should build

* windows 2019 is deprecated

* vs 2022

* windows sdk version

* missing scheduling lib

* WindowsTargetPlatformVersion test

* disable windows

* BN commit id

* Blob.xcscheme
* removed Windows XR support

* NDK min is 23.1.7779620

* disable warnings xr android

* no warning nativeCamera Android

* disable XMLHttpRequest warnings

* even less warnings

* brings back rnta

* windows rnta

* action cache version

* windows build link path

* bimg and bx path

* removed nativexr from linking

* xr leftovers

* lib webp windows

* disable webp windows

* Scheduling

* scheduling path

* actions/download-artifact version

* test Xcode 16.2

* Test Node 18

* up cmake version

* bump to 0.71

* no webp

* removed webp

* Bundle sources in NPM. Step 1

* build BN source tree

* post install Darwin

* npm install

* disable post install

* cleanup

* test without bundle

* unused?

* fix paths

* pr jobs

* getting a bit further with Android

* android build

* xcode

* windows cmake path

* podspec

* builds and links on iOS

* BN commit id

* ios cmake populate

* ioscmake

* removed deprecated gulp code

* remove freespace

* buildTS

* ios build

* publish test

* buildIOS

* missing build functions

* validate files

* missing comma

* validate include

* android readme

* validate files windows

* reduce deps size

* bgfx scripts needed

* stb

* sdf

* windows pipeline

* validate files repo folder

* "This is a scheduled Windows Server 2019 brownout."

* up RN permissions

* Revert "up RN permissions"

This reverts commit 6edebe8.

* TargetPlatformVersion

* WindowsStore

* more path fix

* vs 2022

* clean up yml

* PLAYGROUND_DIR

* JSEngine

* JSI

* Android fixes

* metro config

* BN commit ID

* bn commit id

* fbjni include

* ios post install

* missing file

* pod spec

* xcodebuild

* xcode build

* cleanup

* pod install

* android fbjni

* pod spec

* Update metro.config.js

* npm pack

* npm pack

* tgz path

* path to react-native ios

* build source tree before assembling

* build TS on linux

* podspec absolute paths

* more on symlinks

* assemble on macos

* paths and assemble

* podspec

* Update typescript.yml

* Update react-native-babylon.podspec

* Update react-native-babylon.podspec

* xr was missing

* test removed extract gradle

* update PG deps

* package lock

* Update Podfile.lock

* gradle version, disable windows build

* fbjni headers

* vcxproj update

* windows build

* RNW

* RNW lib paths

* metro config

* webp is back

* special json for windows

* detailed msbuild log

* package lock windows

* fix BabylonReactNativeDir

* libwebp

* copy command

* show me your paths

* more on paths

* windows build, missing postinstall.js

* webp and windows paths

* debug path

* Update BabylonReactNative.vcxproj

* Update BabylonReactNative.vcxproj

* xr & camera plugins env var

* ar files, fix vcxproj, gradle consistency

* FETCHCONTENT_SOURCE_DIR_ARCORE-ANDROID-SDK

* arcore-android-sdk non necessary files

* windows bundling

* setup-msbuild version warning

* cleaning yml

* msbuild is needed, fix pod spec lib paths

* cmake path

* set react native version

* --legacy-peer-deps

* test select RN version

* set react native

* back on rn version 0.73

* set permission version

* set permissions

* 0.74 maybe

* removed code to modify example

* revert RN selection script

* READMEs

* reworking CI

* more CI refactor

* fix workflow

* fix ios preprocessors

* typos, spelling

* android testing

* permissions ios!

* removed commented cmake script

* old doc

* setup_dev script

* async copy jobs

* more explicit typescript compilation

* series

* async

* cmake-runtime

* simplify cmake usage

* run npx

* PR feedback and use latest BN

* minz

* test produced packages

* artifact path

* debugging action

* no need to unzip

* no need to unzip

* npm install

* more npm install

* apk location

* more explicit cmake command

* Revert "more explicit cmake command"

This reverts commit e70834c.

* removed resolver path

* removed testing CI steps

* dep update

* Prevent partial outputs when unzipping Babylon Native sources on macOS

* update package.json

* WindowsTargetPlatformVersion=10.0.26100.0

* WindowsTargetPlatformVersion

* WindowsTargetPlatformVersion

* CppWinRT.2.0.250303.1

* npx gulp setupDev

* root package.json

* root node

* removed root package

* back to setup dev

* generated files path

* more trimming

* escape character

* remove RN support for < 0.71

* more debug

* header path

* cleanup windows

* android react-native stub

* files list to validate

* PR feedback

* current source dir

* typo

* up BN commit id

* Test with forked repo

* subfolders tsc

* ts build

* gsl

* Foundation lib

* foundation ios lib path

* react-native-config 1.5.5

* arcore libs extract

* readme + foundation lib path

* BN commit id

* .so name

* turbomodule investigations

* PROJECT_BUILD_DIR

* gradle fix

* test forced error

* target_compile_definitions for BN shared

* plugin is initialized

* more future proof gradle/cmake for android

* reorganize targets usage

* npm ls

* find RN, skip babylon js node_modules

* prefab header gradle

* anonymous namespace

* ShaderCache

* shadercompiler

* test disable appsdk

* winrt files dir

* winrt

* BN commit ID

* vcxproj property sheet

* platform version

* prefab

* gradle workaround

* WINRT_SOURCE_LOCATION flag

* cppwinrt again

* version forwarding

* kick build

* vcxproj injection

* disable windows for pr build

* PR build

* pr yml name

* removed trigger

* publish preview

---------

Co-authored-by: Simone De Vittorio <simonedevittorio.me@gmail.com>
* Prepare for BABYLON_NATIVE_DISABLE_WEBMIN

* metal-cpp

* typo

* metal layer

* namespace

* metal cpp lib path

* repo update
* Update Babylon.js packages to 9.0.0

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Update package-lock.json files

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Update Windows package files to Babylon.js 9.0.0

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Update BabylonNative commit reference to pick up the fix for null
dereference on error in iOS CameraDevice (BabylonJS/BabylonNative#1649).

The error variable passed to newRenderPipelineStateWithDescriptor may
be nil even when the call fails. The new commit guards against
dereferencing nil when building the error message string.

Also includes:
- MSVC /MP multiprocessor build flag (BabylonJS/BabylonNative#1644)
- bgfx update for x86 crash fix (BabylonJS/BabylonNative#1643)
- Crash dump collection on all CI platforms (BabylonJS/BabylonNative#1641)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…STEM_CMAKE env var (BabylonJS#726)

* Fix Xcode 26 build: suppress deprecated-declarations for Clang targets

wstring_convert<codecvt_utf8_utf16> is deprecated in C++17 and the
BabylonNative cmakeextensions build helper adds -Werror to all Clang
targets, turning this deprecation into a hard build error on
Xcode 26+ / Clang 20+.

Add -Wno-deprecated-declarations via add_compile_options for Clang/
AppleClang builds so the project compiles cleanly while all other
-Werror checks remain enforced.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add BABYLON_USE_SYSTEM_CMAKE env var and update version table

- postinstall.js: add BABYLON_USE_SYSTEM_CMAKE=1 env variable that
  bypasses the npm-bundled cmake-runtime package and uses whatever
  cmake is found on PATH (Homebrew, system install, etc.)
- README: document the new BABYLON_USE_SYSTEM_CMAKE variable in the
  iOS CMake configuration section
- README: add BabylonReactNative 2.0.2 entry to the Platform Native
  Packages version table (requires Babylon.js 9.0.0, BabylonNative 887a044)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Update BabylonNative to ce2edf08 and fix README commit hash format

- Package/gulpfile.js: update COMMIT_ID to latest BabylonNative master
  commit ce2edf0851e0c8483559832a4f8eb9d39c6b2f53
- README.md: use full 40-character commit hash for the 2.0.2 row to
  match the format of existing rows in the Platform Native Packages table

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Fix hardcoded ARCore AAR path to honor resolutionStrategy.force

The -DARCORE_LIBPATH cmake argument was hardcoded to core-1.22.0.aar in

Modules/@babylonjs/react-native/android/build.gradle. If a consumer project

applies a resolutionStrategy.force on com.google.ar:core (for example to

resolve a duplicate-class conflict between core:1.22.0 and

installreferrer:2.2 by forcing core:1.26.0), Gradle extracts the AAR into

core-1.26.0.aar/jni while the native build still looks for

core-1.22.0.aar/jni, failing with: 'libarcore_sdk_c.so missing and no

known rule to make it'.

Resolve the actual extracted AAR via configurations.extractLibs and rewrite

the -DARCORE_LIBPATH cmake argument to match the resolved version, with a

graceful fallback to core-1.22.0.aar if resolution fails.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Allow consumer to override iOS deployment target for generated Xcode project

ios/CMakeLists.txt hardcoded the iOS deployment target to 12 in two places:

  - set(DEPLOYMENT_TARGET "12" CACHE STRING "") (line 12, consumed by the

    leetal/ios-cmake toolchain to set CMAKE_OSX_DEPLOYMENT_TARGET)

  - XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET 12.0 on the BabylonNative target

Xcode 26's Clang crashes compiling DeviceImpl_iOS.mm against iOS 12, so

projects targeting iOS 16+ had to patch the deployment target from their

Podfile post_install hook.

Plumb a new BABYLON_IOS_DEPLOYMENT_TARGET environment variable from

postinstall.js into the CMake invocation (as -DDEPLOYMENT_TARGET=<value>)

and have CMakeLists.txt honour, in order: an explicit -DDEPLOYMENT_TARGET=,

the BABYLON_IOS_DEPLOYMENT_TARGET env var, then the historical 12 default.

Both DEPLOYMENT_TARGET and XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET now use

the resolved value, so the generated ReactNativeBabylon.xcodeproj matches

the consuming app's Podfile platform :ios setting without manual patching.

Documented in README.md alongside BABYLON_NO_CMAKE_POSTINSTALL and

BABYLON_USE_SYSTEM_CMAKE.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Bump iOS minimum/default deployment target from 12 to 16

iOS 12 is no longer a viable minimum: Xcode 26's Clang crashes while

compiling DeviceImpl_iOS.mm against the iOS 12 SDK, so consumers were

forced to override the deployment target via Podfile post_install or via

the BABYLON_IOS_DEPLOYMENT_TARGET env var introduced in the previous

commit. Bump the default everywhere so unmodified consumer projects work

out of the box on Xcode 26+:

  - ios/CMakeLists.txt: DEPLOYMENT_TARGET default 12 -> 16 (still

    overridable via -DDEPLOYMENT_TARGET= or BABYLON_IOS_DEPLOYMENT_TARGET).

  - react-native-babylon.podspec: s.platforms ios 12.0 -> 16.0 so

    CocoaPods enforces the new minimum on consuming apps.

  - postinstall.js: update comment to reflect the new default.

  - README.md: update iOS configuration section and the

    BABYLON_IOS_DEPLOYMENT_TARGET docs.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Make com.google.ar:core version configurable via ext.arcoreVersion

Both the implementation and �xtractLibs dependency declarations

hardcoded com.google.ar:core:1.22.0. In practice this is harmless because

Gradle's normal conflict resolution and any consumer-side

resolutionStrategy.force on com.google.ar:core override the declared

version, but it forced every consumer that wants a newer ARCore (e.g. to

resolve the duplicate-class conflict between core:1.22 and

installreferrer:2.2 requiring core:1.26+) to add a resolutionStrategy.force

AND remember to keep the native build's ARCORE_LIBPATH in sync.

Expose the ARCore version as a Gradle ext property using the existing

safeExtGet helper, defaulting to 1.22.0 for backwards compatibility:

  ext.arcoreVersion = '1.26.0'  // in the consumer's root build.gradle

Use the variable in both implementation and �xtractLibs, in the cmake

ARCORE_LIBPATH default, and in the dynamic-resolution fallback. The

dynamic resolution (added previously) still picks up the actually-extracted

AAR when a resolutionStrategy.force overrides the declared version, so

both override mechanisms continue to work.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Slim ARCore AAR resolution to match proposed pattern

Drop the defensive scaffolding (try/catch, group filter, manual index

loop with not-found fallback, status logger.warn) and use List.replaceAll

for the cmake-args mutation. Behaviour is unchanged: still resolves the

extractLibs configuration after the dependencies block (necessary because

the android { } block evaluates cmake.arguments before the dependencies

are declared further down in the script) and rewrites -DARCORE_LIBPATH to

match the actually-extracted AAR.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Bump Playground iOS deployment target to 16.0

The @babylonjs/react-native podspec declares an iOS 16 minimum (matching the CMake-generated framework's default deployment target). The test app's Podfile relied on react-native-test-app's lower default, which caused 'pod install' to reject the local pod with Specs satisfying the react-native-babylon dependency were found, but they required a higher minimum deployment target.' Set the Podfile's platform explicitly to keep CI's Pods install in sync with the pod's minimum.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* RN 0.81.6 iOS/Android and 0.81.4 Windows

* fix TS

* cmake var name mismatch

* RN version in readme

* up pod lock

* null instead of undefined
* Update BN commitid

* related updates

* sse for bx

* up BN

* use macos15

* metal-cpp

* Update BabylonNative and Babylon.js

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 15954b52-b707-4d01-8f9e-2272ec2fdfac

* Update BabylonNative commit

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 15954b52-b707-4d01-8f9e-2272ec2fdfac

* Restore Babylon.js 9.0 compatibility

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 15954b52-b707-4d01-8f9e-2272ec2fdfac

---------

Copilot-Session: 15954b52-b707-4d01-8f9e-2272ec2fdfac
Bumps [fast-uri](https://github.com/fastify/fast-uri) from 3.1.2 to 3.1.6.
- [Release notes](https://github.com/fastify/fast-uri/releases)
- [Commits](fastify/fast-uri@v3.1.2...v3.1.6)

---
updated-dependencies:
- dependency-name: fast-uri
  dependency-version: 3.1.6
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Cedric Guillemet <1312968+CedricGuillemet@users.noreply.github.com>
dependabot Bot and others added 21 commits September 2, 2026 18:02
…#740)

Bumps [body-parser](https://github.com/expressjs/body-parser) from 1.20.5 to 1.20.6.
- [Release notes](https://github.com/expressjs/body-parser/releases)
- [Changelog](https://github.com/expressjs/body-parser/blob/master/HISTORY.md)
- [Commits](expressjs/body-parser@1.20.5...1.20.6)

---
updated-dependencies:
- dependency-name: body-parser
  dependency-version: 1.20.6
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Cedric Guillemet <1312968+CedricGuillemet@users.noreply.github.com>
BabylonJS#738)

Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 3.14.2 to 3.15.2.
- [Changelog](https://github.com/nodeca/js-yaml/blob/3.15.2/CHANGELOG.md)
- [Commits](nodeca/js-yaml@3.14.2...3.15.2)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 3.15.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Cedric Guillemet <1312968+CedricGuillemet@users.noreply.github.com>
Co-authored-by: Gary Hsu <bghgary@users.noreply.github.com>
…S#743)

Bumps [browserslist](https://github.com/browserslist/browserslist) from 4.28.2 to 4.28.8.
- [Release notes](https://github.com/browserslist/browserslist/releases)
- [Changelog](https://github.com/browserslist/browserslist/blob/main/CHANGELOG.md)
- [Commits](browserslist/browserslist@4.28.2...4.28.8)

---
updated-dependencies:
- dependency-name: browserslist
  dependency-version: 4.28.8
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Cedric Guillemet <1312968+CedricGuillemet@users.noreply.github.com>
…ylonJS#744)

Bumps [@xmldom/xmldom](https://github.com/xmldom/xmldom) to 0.8.15 and updates ancestor dependency [react-native-windows](https://github.com/microsoft/react-native-windows/tree/HEAD/vnext). These dependencies need to be updated together.


Updates `@xmldom/xmldom` from 0.7.13 to 0.8.15
- [Release notes](https://github.com/xmldom/xmldom/releases)
- [Changelog](https://github.com/xmldom/xmldom/blob/master/CHANGELOG.md)
- [Commits](xmldom/xmldom@0.7.13...0.8.15)

Updates `react-native-windows` from 0.81.21 to 0.81.35
- [Release notes](https://github.com/microsoft/react-native-windows/releases)
- [Changelog](https://github.com/microsoft/react-native-windows/blob/react-native-windows_v0.81.35/vnext/CHANGELOG.md)
- [Commits](https://github.com/microsoft/react-native-windows/commits/react-native-windows_v0.81.35/vnext)

---
updated-dependencies:
- dependency-name: "@xmldom/xmldom"
  dependency-version: 0.8.15
  dependency-type: indirect
- dependency-name: react-native-windows
  dependency-version: 0.81.35
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Cedric Guillemet <1312968+CedricGuillemet@users.noreply.github.com>
…bylonJS#746)

Bumps [baseline-browser-mapping](https://github.com/web-platform-dx/baseline-browser-mapping) from 2.10.30 to 2.11.21.
- [Release notes](https://github.com/web-platform-dx/baseline-browser-mapping/releases)
- [Commits](web-platform-dx/baseline-browser-mapping@v2.10.30...v2.11.21)

---
updated-dependencies:
- dependency-name: baseline-browser-mapping
  dependency-version: 2.11.21
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [joi](https://github.com/hapijs/joi) from 17.13.3 to 17.13.7.
- [Commits](hapijs/joi@v17.13.3...v17.13.7)

---
updated-dependencies:
- dependency-name: joi
  dependency-version: 17.13.7
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Cedric Guillemet <1312968+CedricGuillemet@users.noreply.github.com>
Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 3.14.2 to 3.15.2.
- [Changelog](https://github.com/nodeca/js-yaml/blob/3.15.2/CHANGELOG.md)
- [Commits](nodeca/js-yaml@3.14.2...3.15.2)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 3.15.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Cedric Guillemet <1312968+CedricGuillemet@users.noreply.github.com>
…in extension (BabylonJS#745)

AGP 9 ships built-in Kotlin support and registers the kotlin extension
itself. Applying the Kotlin plugin again fails configuration with
"Cannot add extension with name 'kotlin'". Check for the extension
directly, which needs no AGP version table and covers AGP 10, where the
android.builtInKotlin opt-out is removed.

Co-authored-by: Cedric Guillemet <1312968+CedricGuillemet@users.noreply.github.com>
Bumps [shell-quote](https://github.com/ljharb/shell-quote) from 1.8.3 to 1.10.0.
- [Changelog](https://github.com/ljharb/shell-quote/blob/main/CHANGELOG.md)
- [Commits](ljharb/shell-quote@v1.8.3...v1.10.0)

---
updated-dependencies:
- dependency-name: shell-quote
  dependency-version: 1.10.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Cedric Guillemet <1312968+CedricGuillemet@users.noreply.github.com>
…onJS#737)

Bumps [brace-expansion](https://github.com/juliangruber/brace-expansion) from 1.1.14 to 1.1.18.
- [Release notes](https://github.com/juliangruber/brace-expansion/releases)
- [Commits](juliangruber/brace-expansion@v1.1.14...v1.1.18)

---
updated-dependencies:
- dependency-name: brace-expansion
  dependency-version: 1.1.18
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Cedric Guillemet <1312968+CedricGuillemet@users.noreply.github.com>
Co-authored-by: Gary Hsu <bghgary@users.noreply.github.com>
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.29.0 to 7.29.7.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.29.7/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-version: 7.29.7
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…nJS#751)

Removes [tar](https://github.com/isaacs/node-tar). It's no longer used after updating ancestor dependency [just-scripts](https://github.com/microsoft/just). These dependencies need to be updated together.


Removes `tar`

Updates `just-scripts` from 0.44.8 to 2.6.2
- [Commits](https://github.com/microsoft/just/commits/just-scripts_v2.6.2)

---
updated-dependencies:
- dependency-name: tar
  dependency-version:
  dependency-type: indirect
- dependency-name: just-scripts
  dependency-version: 2.6.2
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Cedric Guillemet <1312968+CedricGuillemet@users.noreply.github.com>
Combine the safe lockfile-only updates from BabylonJS#750, BabylonJS#753, BabylonJS#756, and BabylonJS#757 so they share one CI run.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Bumps  and [ws](https://github.com/websockets/ws). These dependencies needed to be updated together.

Updates `ws` from 6.2.3 to 6.2.6
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](websockets/ws@6.2.3...6.2.6)

Updates `ws` from 7.5.10 to 7.5.13
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](websockets/ws@6.2.3...6.2.6)

---
updated-dependencies:
- dependency-name: ws
  dependency-version: 6.2.6
  dependency-type: indirect
- dependency-name: ws
  dependency-version: 7.5.13
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [braces](https://github.com/micromatch/braces) to 3.0.3 and updates ancestor dependency [gulp](https://github.com/gulpjs/gulp). These dependencies need to be updated together.


Updates `braces` from 2.3.2 to 3.0.3
- [Changelog](https://github.com/micromatch/braces/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/braces/commits/3.0.3)

Updates `gulp` from 4.0.2 to 5.0.1
- [Release notes](https://github.com/gulpjs/gulp/releases)
- [Changelog](https://github.com/gulpjs/gulp/blob/master/CHANGELOG.md)
- [Commits](gulpjs/gulp@v4.0.2...v5.0.1)

---
updated-dependencies:
- dependency-name: braces
  dependency-version: 3.0.3
  dependency-type: indirect
- dependency-name: gulp
  dependency-version: 5.0.1
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Fix Windows embedded source build

Use the React Native Windows generated C++/WinRT projections for the CMake build and add blocking source and package CI coverage.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Pin Windows CI to Visual Studio 2022

The windows-latest image now uses Visual Studio 2026 and no longer contains the requested 10.0.22621 SDK. Use the runner matching the v143 CMake generator and project toolset.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Support RNW new architecture on Windows

Use RNW's architecture-aware C++ project integration and disable Windows App SDK transitive verification for the Playground's native module build.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Update Windows test dependencies

Use the RNW patch containing the corrected Windows App SDK package and skip schema codegen for BRN's hand-written native module.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Build Windows tests against RNW NuGet

Generate the Playground with explicit Fabric and NuGet settings, and protect the CMake projection path from trailing-backslash quote parsing.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Isolate Windows package build test

Build the autolinked BRN project directly, keep RNW dependencies on NuGet, and avoid executable packaging during CMake compiler probes.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Provide solution context to Windows tests

Pass the generated solution metadata required by RNW while building only the BRN project.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Shorten Windows native build paths

Place generated CMake projects under the consumer solution build directory so deeply nested MSBuild tracking files remain below MAX_PATH.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Compact Windows native build identity

Keep CMake outputs below legacy MSBuild path limits while preserving platform, configuration, toolset, and generator isolation.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Remove obsolete device update calls

Babylon Native now performs frame synchronization in the rendering-frame methods; its DeviceUpdate compatibility shim is intentionally a no-op and deprecated.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Test Windows package with legacy architecture

Generate the Windows test app through the react-native-test-app API so Fabric can be explicitly disabled while retaining the RNW NuGet dependency path.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Align Windows native C++ ABI

Compile the CMake bridge as C++20, matching React Native Windows and the embedded Babylon Native dependency graph so C++/WinRT selects the same coroutine and source-location ABI.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Add XR controls regression coverage

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Fix cross-platform Playground XR controls

Keep controls visible and interactive above native engine surfaces, surface XR startup failures, and declare ARCore as an optional Android capability.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Bump braces and gulp in /Package (BabylonJS#760)

Bumps [braces](https://github.com/micromatch/braces) to 3.0.3 and updates ancestor dependency [gulp](https://github.com/gulpjs/gulp). These dependencies need to be updated together.


Updates `braces` from 2.3.2 to 3.0.3
- [Changelog](https://github.com/micromatch/braces/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/braces/commits/3.0.3)

Updates `gulp` from 4.0.2 to 5.0.1
- [Release notes](https://github.com/gulpjs/gulp/releases)
- [Changelog](https://github.com/gulpjs/gulp/blob/master/CHANGELOG.md)
- [Commits](gulpjs/gulp@v4.0.2...v5.0.1)

---
updated-dependencies:
- dependency-name: braces
  dependency-version: 3.0.3
  dependency-type: indirect
- dependency-name: gulp
  dependency-version: 5.0.1
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Address PR review feedback

Preserve legacy RNW imports, validate complete Windows consumers, honor the packaged dependency lockfile, and report XR stop failures accurately.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Build Windows consumers with C++20

The full RNW solution compiles coroutine-based Hermes sources that require the same C++20 standard as the native bridge.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Fix Windows consumer project graph

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Build generated Windows app target

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Keep Windows native modules on RNW NuGet

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Configure RNW NuGet for Windows projects

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Isolate Windows consumer project builds

Restore and build each autolinked project independently so MSBuild cannot traverse into React Native Windows source projects.\n\nCo-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Force RNW NuGet mode in Windows CI

Import the generated consumer setting before each C++ project evaluates its RNW references, ensuring native modules consume the matching NuGet projections and binaries.\n\nCo-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Enforce RNW NuGet environment in CI

Set the RNW NuGet properties in the MSBuild process environment and assert each native project evaluates the expected mode before restore and build.\n\nCo-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Make RNW NuGet mode a global property

Pass UseExperimentalNuget directly to every MSBuild root and reject projects that still evaluate an RNW source reference before restore.\n\nCo-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Normalize RNW NuGet metadata references

Replace resolved Microsoft.ReactNative WinMD inputs with the consumer-selected NuGet package path before C++/WinRT generates MIDL references.\n\nCo-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Normalize final CppWinRT MIDL inputs

Remove stale Microsoft.ReactNative metadata from every C++/WinRT reference collection immediately before generating MIDL inputs.\n\nCo-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Remove legacy RNW source imports in CI

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Complete RNW NuGet consumer build

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Enforce C++20 on generated Windows app

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Disable legacy coroutines for Windows app

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Work around RNTA IAsyncAction await

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Make RNTA coroutine workaround robust

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Normalize RNW runtime package payload

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Normalize RNW PRI input snapshot

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Limit Windows CI to linked app build

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [shelljs](https://github.com/shelljs/shelljs) from 0.8.4 to 0.8.5.
- [Release notes](https://github.com/shelljs/shelljs/releases)
- [Changelog](https://github.com/shelljs/shelljs/blob/main/CHANGELOG.md)
- [Commits](shelljs/shelljs@v0.8.4...v0.8.5)

---
updated-dependencies:
- dependency-name: shelljs
  dependency-version: 0.8.5
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Cedric Guillemet <1312968+CedricGuillemet@users.noreply.github.com>
* Update BabylonNative pin with NativeXR JSI compatibility fix

Pin CedricGuillemet/BabylonNative commit ebb8a00903cb5964bcdcaafb5a2b6d96ff8654ed from draft PR BabylonJS#17, based on upstream 628986baf4f1893618011fed6e7db360a2fbb76a.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 00e98a65-803d-48bb-8d36-da55ab233dfe

* Update Playground ARCore SDK to 1.56.0

Override the module default only in the Android test app and document the version. Validated the ARM64 release build and XR tracking on Pixel 9a.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 00e98a65-803d-48bb-8d36-da55ab233dfe

* Pin merged upstream NativeXR JSI fix

Update BabylonNative to feb0227be8890ec5dcd28c6bfc18275a98bf8d45 and restore the BabylonJS archive URL after the JSI fix merged. Revalidated source preparation, TypeScript compilation, Android release build, device rendering, manually confirmed XR tracking, and suspend/resume with Playground ARCore 1.56.0.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 00e98a65-803d-48bb-8d36-da55ab233dfe

* Pin Playground RNW to match published NuGet packages

Keep react-native-windows at the already-locked 0.81.35 so installing the packaged BabylonReactNative artifact cannot float to npm-only 0.81.37 and restore incompatible 0.82.0 NuGet binaries. Synchronize both Playground manifests and lockfiles.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 00e98a65-803d-48bb-8d36-da55ab233dfe

---------

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 00e98a65-803d-48bb-8d36-da55ab233dfe
* Update BabylonNative to f4d9efb

Pin the latest BabylonNative master revision, including the JsRuntimeHost dependency update.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 74d06f45-92ac-4835-acc2-8ed89229b9eb

* Remove obsolete minz links for updated BabylonNative

Update iOS and Windows consumers after BabylonNative stopped producing the minz library; refresh the iOS podspec checksum.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 74d06f45-92ac-4835-acc2-8ed89229b9eb

---------

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 74d06f45-92ac-4835-acc2-8ed89229b9eb
* docs: synchronize READMEs with 2.0.6 and current build setup

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 8d68c500-a3eb-4b2e-8726-17b7f4073d8f

* docs: use Babylon Native workspace for iOS Playground

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 8d68c500-a3eb-4b2e-8726-17b7f4073d8f

* docs: record resolved Playground version baselines

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 8d68c500-a3eb-4b2e-8726-17b7f4073d8f

* docs: update READMEs for 2.0.7

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 8d68c500-a3eb-4b2e-8726-17b7f4073d8f

---------

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 8d68c500-a3eb-4b2e-8726-17b7f4073d8f
Use CedricGuillemet/BabylonNative nativexr-endframe-fix at b85d4f0b3c0735ee7c8318188095a2b78d4df2ad for staging package builds.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 06586ce7-bc10-46c1-83b5-3334fc60600d
@CedricGuillemet

Copy link
Copy Markdown
Owner Author

Superseded by BabylonJS#778, which targets BabylonJS/BabylonReactNative:master as requested. The replacement remains a draft and pins the same exact NativeXr fix commit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants