Skip to content

Prepare 2.0.8 release with NativeXr EndFrame fix - #778

Open
CedricGuillemet wants to merge 4 commits into
BabylonJS:masterfrom
CedricGuillemet:cedricguillemet-nativexr-staging-package
Open

CedricGuillemet wants to merge 4 commits into
BabylonJS:masterfrom
CedricGuillemet:cedricguillemet-nativexr-staging-package

Conversation

@CedricGuillemet

@CedricGuillemet CedricGuillemet commented Oct 21, 2026 •

Copy link
Copy Markdown
Collaborator

Describe the change

Prepare the stable 2.0.8 release with the NativeXr frame-pairing fix from BabylonJS/BabylonNative#1957.

Package/gulpfile.js pins the immutable upstream Babylon Native commit 37d30f54649543290ad25c6c3626c247c1372773. The fix queues EndFrame during FrameStart so it cannot miss its own AfterRender tick and consume the next frame, which caused the m_sessionState->Frame != nullptr assertion. The dependency comes from BabylonJS/BabylonNative, not the earlier fork-only fix or the intentionally failing repro branch.

Update both READMEs from preview framing to the planned stable 2.0.8 release, documenting the exact native dependency and unchanged compatibility baselines. Existing stable 2.0.7 installation guidance remains until 2.0.8 is published. Package version metadata follows the existing publish workflow, which sets the requested version at publication time.

Release-preparation commit 201bb65e240b2239a32d365c406ed4ce879962e1 is pushed to both the fork PR branch and the upstream branch. No package publication, release/tag creation, or publishing-workflow dispatch was performed as part of this update.

Screenshots

N/A - dependency pin and documentation changes only.

Documentation

Updated README.md and Modules/@babylonjs/react-native/README.md for the planned stable 2.0.8 release, NativeXr fix, and unchanged compatibility requirements.

Testing

  • PR Build run 39740666984 passed all eight jobs: TypeScript, package generation, Android/iOS/Windows source builds, and Android/iOS/Windows packaged-consumer builds. This run tested dependency-pin commit f661dbb28f9c35cf7730355e8d0f98f2e904cd4e; subsequent commits change READMEs only.
  • Verified the staging artifact's NativeXrImpl.cpp matches Git blob e8dcade6be34c21305a3bf1b8f1ca2ad97fa40d5 at the pinned Babylon Native commit.
  • Clean-built ARM64 ARViewTest from that staging artifact with app/native Debug, BX_CONFIG_DEBUG=1, and no NDEBUG, then installed it on Pixel 9a. A six-minute loaded-AR soak at approximately 30 FPS and three additional Place Media/Back cycles passed in the same process, with no fatal or assertion logs. Model loading and placement were recorded. Debug re-entry remained 30-32 seconds; Back was observed within 4.3-4.8 seconds including UI-sampling overhead.
  • Separately installed the published npm @babylonjs/react-native@2.0.8-preview, clean-built app/native Debug, and successfully launched it on Pixel 9a. Its XR source matches the same pinned fix. The six-minute soak was on the CI staging artifact, not repeated on the published preview.
  • node --check Package/gulpfile.js and git diff --check passed during the dependency/documentation updates. No full native rebuild was performed for the README-only release-preparation change. Device coverage is bounded lifecycle testing, not the complete manual Android/iOS Playground checklist.

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
Use upstream BabylonNative commit 37d30f54649543290ad25c6c3626c247c1372773, the merged fix from BabylonJS/BabylonNative#1957.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 06586ce7-bc10-46c1-83b5-3334fc60600d
@CedricGuillemet CedricGuillemet changed the title Stage NativeXr EndFrame fix from Babylon Native fork Stage merged NativeXr EndFrame fix Oct 22, 2026
Keep 2.0.7 identified as the latest stable release, document the 2.0.8 preview source pin and unchanged compatibility baselines, and leave release version assignment to the existing publishing workflow.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 06586ce7-bc10-46c1-83b5-3334fc60600d
@CedricGuillemet
CedricGuillemet requested review from bghgary and ryantrem and a balanced review from Copilot October 22, 2026 07:58
@CedricGuillemet
CedricGuillemet marked this pull request as ready for review October 22, 2026 07:58

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The narrowly scoped pin update has reported passing cross-platform CI, the remaining changes are documentation-only, and no blocking issues were identified.

No open issues 🎉

What changed in this PR

Stages the merged Babylon Native NativeXr EndFrame fix for the 2.0.8 preview target while keeping 2.0.7 identified as the latest stable release.

Changes:

  • Pins Babylon Native packaging to immutable upstream commit 37d30f54649543290ad25c6c3626c247c1372773.
  • Documents the preview target, lifecycle fix, and unchanged compatibility baselines.
  • Leaves package version metadata and build infrastructure unchanged.
File Description
README.md Introduces the 2.0.8 preview target and summarizes the fix and compatibility baselines.
Package/​gulpfile.js Updates the Babylon Native source archive pin to the merged fix.
Modules/​@babylonjs/​react-native/​README.md Documents preview publishing expectations, the source pin, and supported versions.

Review effort: Balanced

Replace preview-target framing with planned stable 2.0.8 release notes, preserving the tested Babylon Native pin and compatibility baselines without claiming publication.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 06586ce7-bc10-46c1-83b5-3334fc60600d
@CedricGuillemet CedricGuillemet changed the title Stage merged NativeXr EndFrame fix Prepare 2.0.8 release with NativeXr EndFrame fix Oct 22, 2026

To load formats such as glTF, also install `@babylonjs/loaders` at the same version as `@babylonjs/core` and import it in your application.

**2.0.8 is being prepared as the next stable release; it is not yet published as stable.** It includes the NativeXr EndFrame lifecycle fix described below. Until it is published, the stable installation command above continues to use 2.0.7.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm a bit confused why we want to check in doc changes referencing upcoming changes.

@bghgary bghgary left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Reviewed by Copilot on behalf of @bghgary]

LGTM

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.

4 participants