Automatically closing xr session when application is closed

Hi!

I’m working with Babylon React Native, in these versions specifically:
@babylonjs/core”: “5.0.0-alpha.44”,
@babylonjs/loaders”: “5.0.0-alpha.44”,
@babylonjs/react-native”: “0.4.0-alpha.33”,
I’m using them for their AR capabilities on native, everything has been going great so far except that the app doesn’t seem to close the ar session automatically when I close it. Meaning it gets confused the next time I start it and crashes. When I manually close it, it opens normally the next time. Is there some setting I can enable to close the AR session automatically when the application is closed?

Thanks!

Alright this is turning out to be harder than I thought. I wanted to just call await xrSession.exitXRAsync(); when the application closes but for some reason react native doesn’t really have a thing for that?
So the next option was to just close AR every time it goes to the background but for some reason this doesn’t seem to finish when I’m killing the app. It does work when I put it to the background and open it again, aka not kill it entirely. Which makes me think that maybe it doesn’t get the time to finish?

Any thoughts on this would be great.

Adding @Cedric and @bghgary our Native Gurus.

1 Like

Also @ryantrem might actually be the best in this case as he is the one behind the react native version :slight_smile:

1 Like

I’m actively working on something related :

Can you check how it goes with this Babylon Native branch?

I think the crash cause is the same.

2 Likes

Thanks for the reply! I’ll test that out tomorrow first thing and come back with the results :+1:

@Peter The crash you experience is on Android ?

A bit more context on that:
The crash is happening because ARCore is destroying Android Surface/OpenGL context behind our back. The pointed PR solves that (at least for some phones, more on that later). There is another issue after :

Hey! I was just going to write that I got your original branch up and running and it didn’t fix the problem. I’m not running the playground app, would this change still fix the issue in my case?

Don’t know if this helps but this is the error dump I get when I try and restart:

      #01 pc 00000000001ddda0  /data/app/ mysupersecretappid==/lib/arm64/libBabylonNative.so (Babylon::JsRuntime::Dispatch(std::__ndk1::function<void (Napi::Env)>)+152) (BuildId: e1abcaa77508852a457d2f3360767ad0b2b5d3dc)
      #02 pc 000000000029ea34  /data/app/ mysupersecretappid==/lib/arm64/libBabylonNative.so (BuildId: e1abcaa77508852a457d2f3360767ad0b2b5d3dc)
      #03 pc 00000000002edff0  /data/app/ mysupersecretappid==/lib/arm64/libBabylonNative.so (xr::System::Session::Impl::DestroyDisplayResources(std::__ndk1::function<arcana::task<void, std::exception_ptr> (void*)>)+92) (BuildId: e1abcaa77508852a457d2f3360767ad0b2b5d3dc)
      #04 pc 00000000002ea444  /data/app/ mysupersecretappid==/lib/arm64/libBabylonNative.so (xr::System::Session::Impl::GetNextFrame(bool&, bool&, std::__ndk1::function<arcana::task<void, std::exception_ptr> (void*)>)+656) (BuildId: e1abcaa77508852a457d2f3360767ad0b2b5d3dc)
      #05 pc 00000000002ea124  /data/app/ mysupersecretappid==/lib/arm64/libBabylonNative.so (xr::System::Session::GetNextFrame(bool&, bool&, std::__ndk1::function<arcana::task<void, std::exception_ptr> (void*)>)+148) (BuildId: e1abcaa77508852a457d2f3360767ad0b2b5d3dc)
      #06 pc 000000000023f01c  /data/app/ mysupersecretappid==/lib/arm64/libBabylonNative.so (Babylon::Plugins::NativeXr::Impl::BeginFrame()+88) (BuildId: e1abcaa77508852a457d2f3360767ad0b2b5d3dc)
      #07 pc 000000000029d0b8  /data/app/ mysupersecretappid==/lib/arm64/libBabylonNative.so (BuildId: e1abcaa77508852a457d2f3360767ad0b2b5d3dc)
      #08 pc 0000000000220b48  /data/app/ mysupersecretappid==/lib/arm64/libBabylonNative.so (_ZN6arcana8internal22task_payload_with_workINS_4taskIvSt13exception_ptrEES3_Lm32EE7do_workERNS0_17base_task_payloadEPS6_+60) (BuildId: e1abcaa77508852a457d2f3360767ad0b2b5d3dc)
      #09 pc 000000000029e8d0  /data/app/ mysupersecretappid==/lib/arm64/libBabylonNative.so (BuildId: e1abcaa77508852a457d2f3360767ad0b2b5d3dc)
      #10 pc 00000000001d8f2c  /data/app/ mysupersecretappid==/lib/arm64/libBabylonNative.so (_ZN6arcana10dispatcherILm128EE13internal_tickERKNS_12cancellationEb+156) (BuildId: e1abcaa77508852a457d2f3360767ad0b2b5d3dc)
      #11 pc 00000000001c7eb4  /data/app/ mysupersecretappid==/lib/arm64/libBabylonNative.so (Babylon::RenderView()+68) (BuildId: e1abcaa77508852a457d2f3360767ad0b2b5d3dc)
      #13 pc 000000000208e4b0  /memfd:/jit-cache (deleted) (com.babylonreactnative.BabylonNativeInterop.renderView+32)
      #14 pc 000000000208e284  /memfd:/jit-cache (deleted) (com.babylonreactnative.EngineView$2.run+180)

Hey @Peter

Nop, looking at your crashdump, it doesn’t seem to be the same bug.
Can you repro with the playground in BabylonNative repo? Or can you share your own repo?

1 Like

I’ve cloned the repo, but I don’t see instructions for my specific setup which is macOS building for Android.
I’ve just run npm i in the Apps directory and tried running the BabylonNative/Apps/Playground/Android folder in android studio but I think I have the wrong version of java?

org.gradle.groovy.scripts.ScriptCompilationException: Could not compile initialization script '/private/var/folders/t6/94smvyz54075f29s3fnvn1nc0000gp/T/sync.studio.tooling1.gradle'
Caused by: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
General error during semantic analysis: Unsupported class file major version 57

yes, npm install and open folder with AndroidStudio. I did it this morning on MacOS without any issue with latest available AndroidStudio.
I guess you need to update it.

Alright, what version of the JDK are you running? GitHub - BabylonJS/BabylonReactNative: Build React Native applications with the power of Babylon Native needs JDK 13 so that’s what I have, but it may be a bit old for this repository.

I don’t think you have to take care of JDK version. AFAIK everything needed is installer with AndroidStudio.

Ah I switched to the embedded JDK and that did it. The playground builds but I only have a cube and I don’t see a button or anything to switch to AR.

You can edit experience.js. set this value to true :

If you try this branch :

You should see a button to launch playground activity.

Okay, I cannot seem to get the playground in your branch running due to vague memory issue?
error: delete called on non-final 'arcana::cancellation_source' that has virtual functions but non-virtual destructor [-Werror,-Wdelete-non-abstract-non-virtual-dtor]
But I did get AR working in on BabylonNative master branch with AR enabled through the experience file
I can get it to crash by doing the following:

  1. Open app
  2. Look around in AR
  3. Put app in background by pressing < button on bottom of the screen
  4. Pressing ||| button to show apps running in background
  5. Select playground
  6. Crash

Which is similar enough to the workflow I followed in react native to crash it.
Hope that helps to narrow it down?

I can’t repro the crash with master branch
I think the arcana issue is because of a wrong revision from arcana sub repo.
Can you please check you use the same version from master branch?

It does seem to be a different version, I’ll reclone it and see if that fixes it.
The crash could be a quirk of this specific device, it’s a Samsung S9
Here’s the logs from when I try to reopen the app from the background, but if this is just me I’ll see if there’s some update I missed:

2021-09-20 18:21:51.260 13394-13410/com.android.babylonnative.playground W/System: A resource failed to call end. 
2021-09-20 18:21:51.437 13394-13394/com.android.babylonnative.playground W/ActivityThread: handleWindowVisibility: no activity for token android.os.BinderProxy@2625219
2021-09-20 18:21:51.490 13394-13484/com.android.babylonnative.playground E/ACameraMetadata: filterDurations: malformed duration key 851980! count 0, type 3
2021-09-20 18:21:51.490 13394-13484/com.android.babylonnative.playground E/ACameraMetadata: filterDurations: malformed duration key 1638402! count 0, type 3
2021-09-20 18:21:51.490 13394-13484/com.android.babylonnative.playground E/ACameraMetadata: filterDurations: malformed duration key 1638403! count 0, type 3
2021-09-20 18:21:51.490 13394-13484/com.android.babylonnative.playground E/ACameraMetadata: filterDurations: malformed duration key 1835009! count 0, type 3
2021-09-20 18:21:51.490 13394-13484/com.android.babylonnative.playground E/ACameraMetadata: filterDurations: malformed duration key 1835010! count 0, type 3
2021-09-20 18:21:51.490 13394-13484/com.android.babylonnative.playground E/ACameraMetadata: filterDurations: malformed duration key 1638407! count 0, type 3
2021-09-20 18:21:51.490 13394-13484/com.android.babylonnative.playground E/ACameraMetadata: filterDurations: malformed duration key 1638408! count 0, type 124
2021-09-20 18:21:51.544 13394-13394/com.android.babylonnative.playground E/Surface: getSlotFromBufferLocked: unknown buffer: 0x7dc039d280
2021-09-20 18:21:51.547 13394-13394/com.android.babylonnative.playground E/libEGL: eglMakeCurrentImpl:1321 error 300b (EGL_BAD_NATIVE_WINDOW)
2021-09-20 18:21:51.558 13394-13394/com.android.babylonnative.playground E/libEGL: eglMakeCurrentImpl:1290 error 300d (EGL_BAD_SURFACE)
2021-09-20 18:21:51.558 13394-13394/com.android.babylonnative.playground E/native: E0920 18:21:51.558055   13394 android_frame_manager_gl.cc:287] eglMakeCurrent failed. egl_error=12301
2021-09-20 18:21:51.808 13394-13394/com.android.babylonnative.playground A/libc: Fatal signal 5 (SIGTRAP), code 1 (TRAP_BRKPT), fault addr 0x7d558d75a8 in tid 13394 (tive.playground), pid 13394 (tive.playground)
2021-09-20 18:21:52.006 13394-13492/com.android.babylonnative.playground E/native: E0920 18:21:52.006778   13492 epipolar_self_consistency_metrics.cc:164] Failed to create pose node for current timestamp 886071036563042
2021-09-20 18:21:52.006 13394-13495/com.android.babylonnative.playground W/native: W0920 18:21:52.006778   13495 vio_initializer.cc:463] Dropped initialization window due to skip in data.
2021-09-20 18:21:52.007 13394-13495/com.android.babylonnative.playground W/native: W0920 18:21:52.007562   13495 motion_tracking_stats_gatherer.cc:1625] Feature Extraction frequency low: 4.80611 Hz.
2021-09-20 18:21:52.007 13394-13495/com.android.babylonnative.playground W/native: W0920 18:21:52.007754   13495 motion_tracking_stats_gatherer.cc:1625] VIO frequency low: 4.8849 Hz.
2021-09-20 18:21:52.505 13394-13495/com.android.babylonnative.playground E/native: E0920 18:21:52.505482   13495 bundle_adjustment_initializer.cc:729] SSBA does not get enough landmarks. Found 11 < 16
2021-09-20 18:21:52.505 13394-13495/com.android.babylonnative.playground E/native: E0920 18:21:52.505581   13495 bundle_adjustment_initializer.cc:152] Failed to initialize the network.
2021-09-20 18:21:52.505 13394-13495/com.android.babylonnative.playground E/native: E0920 18:21:52.505643   13495 vio_initializer.cc:640] Initializer's BA failed to produce a valid output!

I’ve updated my device and reinstalled AR, and I’ve finally manged to try your branch but unfortunately I still get the crash

  1. Open app
  2. Click “Launch Playground”
  3. Wait for AR to start
  4. Press < button
  5. Click “Launch Playground” again
  6. Crash

If I don’t wait for AR to start and quickly press the back button I don’t get the crash so it is related to that.
Here’s the logs for everything after I press “Launch Playground” the second time. Except for 2021-09-21 10:24:57.939 21636-21636/com.android.babylonnative.playground A/libc: Fatal signal 5 (SIGTRAP), code 1 (TRAP_BRKPT), fault addr 0x7e26f67618 in tid 21636 (tive.playground), pid 21636 (tive.playground)
I don’t see any smoking gun myself.

2021-09-21 10:24:57.550 21636-21636/com.android.babylonnative.playground D/ViewRootImpl@8b4f607[MainActivity]: ViewPostIme pointer 0
2021-09-21 10:24:57.587 21636-21636/com.android.babylonnative.playground D/ViewRootImpl@8b4f607[MainActivity]: ViewPostIme pointer 1
2021-09-21 10:24:57.610 21636-21636/com.android.babylonnative.playground W/ActivityThread: handleWindowVisibility: no activity for token android.os.BinderProxy@db69dd4
2021-09-21 10:24:57.617 21636-21636/com.android.babylonnative.playground D/PhoneWindow: forceLight changed to true [] from com.android.internal.policy.PhoneWindow.updateForceLightNavigationBar:4268 com.android.internal.policy.DecorView.updateColorViews:1513 com.android.internal.policy.PhoneWindow.dispatchWindowAttributesChanged:3246 android.view.Window.setFlags:1148 com.android.internal.policy.PhoneWindow.generateLayout:2474 
2021-09-21 10:24:57.618 21636-21636/com.android.babylonnative.playground I/MultiWindowDecorSupport: updateCaptionType >> DecorView@58d6ec3[], isFloating: false, isApplication: true, hasWindowDecorCaption: false, hasWindowControllerCallback: true
2021-09-21 10:24:57.618 21636-21636/com.android.babylonnative.playground D/MultiWindowDecorSupport: setCaptionType = 0, DecorView = DecorView@58d6ec3[]
2021-09-21 10:24:57.639 21636-21636/com.android.babylonnative.playground I/native: I0921 10:24:57.639016   21636 session.cc:1189] Entering Session::Resume.
2021-09-21 10:24:57.639 21636-21705/com.android.babylonnative.playground I/BabylonNative: BJS - [10:24:57]: FPS: 30
2021-09-21 10:24:57.641 21636-21636/com.android.babylonnative.playground I/native: I0921 10:24:57.641941   21636 estimator_impl.cc:712] Resetting motion tracking from user request.
2021-09-21 10:24:57.642 21636-21636/com.android.babylonnative.playground I/native: I0921 10:24:57.642258   21636 session.cc:3320] Update Frame Delay to 0 frames.
2021-09-21 10:24:57.642 21636-21636/com.android.babylonnative.playground I/native: I0921 10:24:57.642340   21636 android_sensors.cc:185] Starting thread.
2021-09-21 10:24:57.642 21636-21636/com.android.babylonnative.playground I/native: I0921 10:24:57.642573   21636 logger.h:28] DataSourceMetrics: kStartImageSubSystem: 81.731us
2021-09-21 10:24:57.642 21636-21636/com.android.babylonnative.playground I/native: I0921 10:24:57.642611   21636 session.cc:1377] Session::ResumeWithAnalytics returning OK.
2021-09-21 10:24:57.643 21636-21771/com.android.babylonnative.playground E/ACameraMetadata: filterDurations: malformed duration key 851980! count 0, type 3
2021-09-21 10:24:57.643 21636-21771/com.android.babylonnative.playground E/ACameraMetadata: filterDurations: malformed duration key 1638402! count 0, type 3
2021-09-21 10:24:57.643 21636-21771/com.android.babylonnative.playground E/ACameraMetadata: filterDurations: malformed duration key 1638403! count 0, type 3
2021-09-21 10:24:57.643 21636-21771/com.android.babylonnative.playground E/ACameraMetadata: filterDurations: malformed duration key 1835009! count 0, type 3
2021-09-21 10:24:57.643 21636-21771/com.android.babylonnative.playground E/ACameraMetadata: filterDurations: malformed duration key 1835010! count 0, type 3
2021-09-21 10:24:57.643 21636-21771/com.android.babylonnative.playground E/ACameraMetadata: filterDurations: malformed duration key 1638407! count 0, type 3
2021-09-21 10:24:57.643 21636-21771/com.android.babylonnative.playground E/ACameraMetadata: filterDurations: malformed duration key 1638408! count 0, type 126
2021-09-21 10:24:57.650 21636-22003/com.android.babylonnative.playground I/native: I0921 10:24:57.650242   22003 android_sensors.cc:45] Gyro min delay 2ms requesting 5ms
2021-09-21 10:24:57.650 21636-21636/com.android.babylonnative.playground D/ViewRootImpl@ca72404[PlaygroundActivity]: setView = com.android.internal.policy.DecorView@58d6ec3 TM=true MM=false
2021-09-21 10:24:57.651 21636-21636/com.android.babylonnative.playground D/ViewRootImpl@8b4f607[MainActivity]: MSG_WINDOW_FOCUS_CHANGED 0 1
2021-09-21 10:24:57.651 21636-21636/com.android.babylonnative.playground D/InputMethodManager: prepareNavigationBarInfo() DecorView@1618970[MainActivity]
2021-09-21 10:24:57.651 21636-21636/com.android.babylonnative.playground D/InputMethodManager: getNavigationBarColor() -855310
2021-09-21 10:24:57.652 21636-21653/com.android.babylonnative.playground I/CameraManagerGlobal: Camera 0 facing CAMERA_FACING_BACK state now CAMERA_STATE_OPEN for client com.android.babylonnative.playground API Level 2
2021-09-21 10:24:57.654 21636-21636/com.android.babylonnative.playground D/SurfaceView: onWindowVisibilityChanged(0) true android.view.SurfaceView{f3bbded V.E...... ......I. 0,0-0,0} of ViewRootImpl@ca72404[PlaygroundActivity]
2021-09-21 10:24:57.654 21636-21636/com.android.babylonnative.playground D/SurfaceView: onWindowVisibilityChanged(0) false android.view.SurfaceView{29c4422 I.E...... ......I. 0,0-0,0} of ViewRootImpl@ca72404[PlaygroundActivity]
2021-09-21 10:24:57.658 21636-22003/com.android.babylonnative.playground I/native: I0921 10:24:57.658493   22003 android_sensors.cc:45] Accel min delay 2ms requesting 5ms
2021-09-21 10:24:57.667 21636-21771/com.android.babylonnative.playground I/native: I0921 10:24:57.667087   21771 logger.h:28] CameraMetrics: OpenCamera: 24.282269ms
2021-09-21 10:24:57.672 21636-21636/com.android.babylonnative.playground D/ViewRootImpl@ca72404[PlaygroundActivity]: Relayout returned: old=(0,0,1440,2960) new=(0,0,1440,2960) req=(1440,2960)0 dur=9 res=0x7 s={true 541593296896} ch=true
2021-09-21 10:24:57.673 21636-21670/com.android.babylonnative.playground D/OpenGLRenderer: createReliableSurface : 0x7e375f0b40(0x7e1979e000)
2021-09-21 10:24:57.675 21636-21670/com.android.babylonnative.playground I/mali_winsys: new_window_surface() [1440x2960] return: 0x3000
2021-09-21 10:24:57.683 21636-21636/com.android.babylonnative.playground D/SurfaceView: surfaceCreated 1 #8 android.view.SurfaceView{f3bbded V.E...... ......ID 0,0-1440,2448}
2021-09-21 10:24:57.684 21636-21636/com.android.babylonnative.playground D/SurfaceView: surfaceChanged (1440,2448) 1 #8 android.view.SurfaceView{f3bbded V.E...... ......ID 0,0-1440,2448}
2021-09-21 10:24:57.687 21636-21705/com.android.babylonnative.playground I/BabylonNative: BJS - [10:24:57]: Babylon Native (v5.0.0-alpha.35) launched
2021-09-21 10:24:57.689 21636-21636/com.android.babylonnative.playground D/SurfaceView: surfaceCreated 1 #3 android.view.SurfaceView{29c4422 V.E...... ......ID 0,0-1440,2448}
2021-09-21 10:24:57.689 21636-21636/com.android.babylonnative.playground D/SurfaceView: surfaceChanged (1440,2448) 1 #3 android.view.SurfaceView{29c4422 V.E...... ......ID 0,0-1440,2448}
2021-09-21 10:24:57.690 21636-21636/com.android.babylonnative.playground E/Surface: getSlotFromBufferLocked: unknown buffer: 0x7e375f30c0
2021-09-21 10:24:57.691 21636-21636/com.android.babylonnative.playground E/libEGL: eglMakeCurrentImpl:1321 error 300b (EGL_BAD_NATIVE_WINDOW)
2021-09-21 10:24:57.692 21636-21705/com.android.babylonnative.playground I/BabylonNative: BJS - [10:24:57]: Loaded
2021-09-21 10:24:57.692 21636-21636/com.android.babylonnative.playground I/mali_winsys: new_window_surface() [1440x2448] return: 0x3000
2021-09-21 10:24:57.692 21636-21636/com.android.babylonnative.playground I/mali_egl: eglDestroySurface() in
2021-09-21 10:24:57.692 21636-21636/com.android.babylonnative.playground I/mali_egl: eglDestroySurface() out
2021-09-21 10:24:57.693 21636-21636/com.android.babylonnative.playground W/libEGL: EGLNativeWindowType 0x7f39a62010 disconnect failed
2021-09-21 10:24:57.693 21636-21636/com.android.babylonnative.playground W/mali_winsys: native_window_api_disconnect failed: -19
2021-09-21 10:24:57.694 21636-21636/com.android.babylonnative.playground I/mali_winsys: delete_surface() [1440x2448] return
2021-09-21 10:24:57.694 21636-21636/com.android.babylonnative.playground I/native: I0921 10:24:57.694244   21636 session.cc:3320] Update Frame Delay to 0 frames.
2021-09-21 10:24:57.759 21636-21771/com.android.babylonnative.playground I/native: I0921 10:24:57.759730   21771 logger.h:28] CameraMetrics: CreateCaptureSession: 91.296731ms
2021-09-21 10:24:57.759 21636-21771/com.android.babylonnative.playground I/native: I0921 10:24:57.759859   21771 capture_request_utils.cc:207] Flash: ConfigureRequestFlashMode - OFF
2021-09-21 10:24:57.761 21636-21765/com.android.babylonnative.playground I/native: I0921 10:24:57.761733   21765 cameras.cc:1387] Camera 0 changed state CLOSED->OPEN; Camera device opened successfully. i=5
2021-09-21 10:24:57.761 21636-21765/com.android.babylonnative.playground I/native: I0921 10:24:57.761859   21765 cameras.cc:1387] Camera 0 changed state OPEN->CAPTURING; Started capture session. i=6
2021-09-21 10:24:57.761 21636-21636/com.android.babylonnative.playground E/libEGL: eglMakeCurrentImpl:1321 error 300d (EGL_BAD_SURFACE)
2021-09-21 10:24:57.939 21636-21636/com.android.babylonnative.playground A/libc: Fatal signal 5 (SIGTRAP), code 1 (TRAP_BRKPT), fault addr 0x7e26f67618 in tid 21636 (tive.playground), pid 21636 (tive.playground)
2021-09-21 10:24:58.133 21636-21653/com.android.babylonnative.playground I/CameraManagerGlobal: Camera 0 facing CAMERA_FACING_BACK state now CAMERA_STATE_ACTIVE for client com.android.babylonnative.playground API Level 2
2021-09-21 10:24:58.154 21636-22005/com.android.babylonnative.playground I/native: I0921 10:24:58.154350   22005 logger.h:28] DataSourceMetrics: kFirstGlCallback: 511.8525ms
2021-09-21 10:24:58.155 21636-21798/com.android.babylonnative.playground I/native: I0921 10:24:58.155240   21798 timebase_helpers.cc:170] Timebase offset intialized to 0
2021-09-21 10:24:58.155 21636-22006/com.android.babylonnative.playground I/native: I0921 10:24:58.155934   22006 logger.h:28] CameraMetrics: FirstCaptureComplete: 396.0345ms
2021-09-21 10:24:58.156 21636-21798/com.android.babylonnative.playground I/native: I0921 10:24:58.156126   21798 logger.h:28] DataSourceMetrics: kFirstImageCallback: 513.631423ms
2021-09-21 10:24:58.168 21636-22004/com.android.babylonnative.playground I/native: I0921 10:24:58.167899   22004 performance_monitor.cc:115] Event: FeatureExtraction is taking too long, it took 733.671ms
2021-09-21 10:24:58.169 21636-21782/com.android.babylonnative.playground W/native: W0921 10:24:58.169518   21782 vio_initializer.cc:463] Dropped initialization window due to skip in data.
2021-09-21 10:24:58.368 21636-21786/com.android.babylonnative.playground E/native: E0921 10:24:58.368186   21786 motion_tracking_context.cc:1433] Unable to find measurements corresponding to VIO status at timestamp 3832141119077.
2021-09-21 10:24:58.639 21636-21705/com.android.babylonnative.playground I/BabylonNative: BJS - [10:24:58]: FPS: 60

Thanks for the report. I think it’s the same bug I’m trying to fix. For some reason, the fix only works for some devices, not all. I’m still investigating.

1 Like