Meta Quest Build Crash using OpenGLES3 (Unity 2022.3.8f1)

Having a very consistent crash when running builds on the Quest Pro and Quest 2 devices using Unity 2022.3.8f1 with Oculus Integration SDK v56.

In a lot of cases the build will crash immediately on launch when loading into the scene. However I tracked down a very specific simple way to replicate it

  • Make an empty scene (Other than the VR rig)
  • add a 3D object into the scene behind where the player will be facing
  • deploy the build
  • Launch the app facing away from the object (It helps to look up with the headset)
  • App should be working fine
  • Turn around and look at the object
  • observe crash

Following the information in this thread we were able to find a fix by changing the graphics API to Vulkan, however this is not recommended by Meta so another solution would be ideal, perhaps there is a specific setting we need to change although we are using the recommended setup from Meta

Here is the stack trace of the crash

2023/09/11 16:44:30.433 23164 23242 Error CRASH *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
2023/09/11 16:44:30.433 23164 23242 Error CRASH Version '2022.3.8f1 (b5eafc012955)', Build type 'Development', Scripting Backend 'il2cpp', CPU 'arm64-v8a'
2023/09/11 16:44:30.433 23164 23242 Error CRASH Build fingerprint: 'oculus/seacliff/seacliff:12/SQ3A.220605.009.A1/50065460051500330:user/release-keys'
2023/09/11 16:44:30.433 23164 23242 Error CRASH Revision: '0'
2023/09/11 16:44:30.433 23164 23242 Error CRASH ABI: 'arm64'
2023/09/11 16:44:30.434 23164 23242 Error CRASH Timestamp: 2023-09-11 16:44:30.433977156+1200
2023/09/11 16:44:30.434 23164 23242 Error CRASH pid: 23164, tid: 23242, name: Thread-3  >>> com.testGames.game <<<
2023/09/11 16:44:30.434 23164 23242 Error CRASH uid: 10142
2023/09/11 16:44:30.434 23164 23242 Error CRASH signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr --------
2023/09/11 16:44:30.434 23164 23242 Error CRASH Cause: null pointer dereference
2023/09/11 16:44:30.434 23164 23242 Error CRASH     x0  0000000000000000  x1  0000000000000000  x2  0000000000000010  x3  0000000000009146
2023/09/11 16:44:30.434 23164 23242 Error CRASH     x4  0000000000000010  x5  000000000000003b  x6  000000714f5fa2f0  x7  7f7f7f7f7f7f7f7f
2023/09/11 16:44:30.434 23164 23242 Error CRASH     x8  0000000000000006  x9  0000000000000000  x10 0000000000001cf1  x11 0000000000000073
2023/09/11 16:44:30.434 23164 23242 Error CRASH     x12 0000000000000502  x13 000000728d0399cc  x14 b400007150302ef0  x15 0000000000000000
2023/09/11 16:44:30.434 23164 23242 Error CRASH     x16 000000723bbcfc70  x17 00000073447010f0  x18 000000714e510000  x19 00000071f1d98760
2023/09/11 16:44:30.434 23164 23242 Error CRASH     x20 0000000000000000  x21 0000000000000002  x22 0000000000000010  x23 0000000000000000
2023/09/11 16:44:30.434 23164 23242 Error CRASH     x24 0000000000008f37  x25 000000723a80b35c  x26 000000723bcb4000  x27 00000071f1d98760
2023/09/11 16:44:30.434 23164 23242 Error CRASH     x28 0000007200217b00  x29 000000717026b538
2023/09/11 16:44:30.434 23164 23242 Error CRASH     lr  000000723b43d424  sp  000000714f5fb390  pc  0000007344701144  pst 0000000060001000
2023/09/11 16:44:30.434 23164 23242 Error CRASH backtrace:
2023/09/11 16:44:30.434 23164 23242 Error CRASH       #00 pc 0000000000085144  /apex/com.android.runtime/lib64/bionic/libc.so (memset+84) (BuildId: e88a74b00e45d46f005121670b8c66d7)
2023/09/11 16:44:30.434 23164 23242 Error CRASH       #01 pc 0000000000e18420  /data/app/~~_ej2-ADLLB10KJe3sgLzTg==/com.testGames.game-U6YGuvSRaLafmPQvbvIQaA==/lib/arm64/libunity.so (ApiGLES::ClearBufferSubData(unsigned int, gl::BufferTarget, long, long)+164) (BuildId: 3711348e844b99b1)
2023/09/11 16:44:30.434 23164 23242 Error CRASH       #02 pc 0000000000df3e98  /data/app/~~_ej2-ADLLB10KJe3sgLzTg==/com.testGames.game-U6YGuvSRaLafmPQvbvIQaA==/lib/arm64/libunity.so (BufferManagerGLES::AcquireBuffer(unsigned long, DataBufferGLES::BufferUsage, GfxBuffer*, bool)+572) (BuildId: 3711348e844b99b1)
2023/09/11 16:44:30.434 23164 23242 Error CRASH       #03 pc 0000000000e0840c  /data/app/~~_ej2-ADLLB10KJe3sgLzTg==/com.testGames.game-U6YGuvSRaLafmPQvbvIQaA==/lib/arm64/libunity.so (GfxDeviceGLES::UpdateComputeConstantBuffers(unsigned int, ConstantBufferHandle*, unsigned int, unsigned long, unsigned char const*, unsigned int const*, unsigned int const*, int const*)+312) (BuildId: 3711348e844b99b1)
2023/09/11 16:44:30.434 23164 23242 Error CRASH       #04 pc 0000000000ff6520  /data/app/~~_ej2-ADLLB10KJe3sgLzTg==/com.testGames.game-U6YGuvSRaLafmPQvbvIQaA==/lib/arm64/libunity.so (GfxDeviceWorker::RunCommand(ThreadedStreamBuffer&)+18760) (BuildId: 3711348e844b99b1)
2023/09/11 16:44:30.434 23164 23242 Error CRASH       #05 pc 0000000000ff1b70  /data/app/~~_ej2-ADLLB10KJe3sgLzTg==/com.testGames.game-U6YGuvSRaLafmPQvbvIQaA==/lib/arm64/libunity.so (GfxDeviceWorker::RunExt(ThreadedStreamBuffer&)+84) (BuildId: 3711348e844b99b1)
2023/09/11 16:44:30.434 23164 23242 Error CRASH       #06 pc 0000000000ff1b10  /data/app/~~_ej2-ADLLB10KJe3sgLzTg==/com.testGames.game-U6YGuvSRaLafmPQvbvIQaA==/lib/arm64/libunity.so (GfxDeviceWorker::Run()+140) (BuildId: 3711348e844b99b1)
2023/09/11 16:44:30.434 23164 23242 Error CRASH       #07 pc 0000000000ff1894  /data/app/~~_ej2-ADLLB10KJe3sgLzTg==/com.testGames.game-U6YGuvSRaLafmPQvbvIQaA==/lib/arm64/libunity.so (GfxDeviceWorker::RunGfxDeviceWorker(void*)+4) (BuildId: 3711348e844b99b1)
2023/09/11 16:44:30.434 23164 23242 Error CRASH       #08 pc 000000000079ad94  /data/app/~~_ej2-ADLLB10KJe3sgLzTg==/com.testGames.game-U6YGuvSRaLafmPQvbvIQaA==/lib/arm64/libunity.so (Thread::RunThreadWrapper(void*)+1048) (BuildId: 3711348e844b99b1)
2023/09/11 16:44:30.434 23164 23242 Error CRASH       #09 pc 00000000000dddec  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+132) (BuildId: e88a74b00e45d46f005121670b8c66d7)
2023/09/11 16:44:30.434 23164 23242 Error CRASH       #10 pc 000000000008a02c  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (BuildId: e88a74b00e45d46f005121670b8c66d7)
2023/09/11 16:44:30.687 23164 23242 Error CRASH Forwarding signal 11
2023/09/11 16:44:30.687 23164 23242 Fatal libc Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 in tid 23242 (Thread-3), pid 23164 (s.game)

@MadisonCF This looks like a good bug report if you wouldn’t mind filing a bug. Note that Unity does not track bugs reported in the forums :

Thanks I will do that

@MadisonCF Hi. Do you happen to have raised a bug report with a reproduction project for this matter?

I’ve noticed that when upgrading from 2021.3 to versions beyond 2022 in a project with OpexXR+XRI, there is an error originating from lib/arm64/libunity.so. Is this issue still under investigation? Switching to Vulkan as a workaround prevents crashes, but due to system specifications, OpenGles3 is required, so upgrading from 2021 onwards is currently not possible as long as this issue persists

Has anyone found a workaround for for making a Dev Build for Quest on 2022 yet?

This bug was caused by a bug that occurred when setting another FBX to the OpenGL or XRI controller.
If there is a reason why you cannot change to Vulkan, you need to create a minimal project and investigate what is the cause.
We also recommend using 2022.3.12 or later,
openxr recommends not using 1.9.1 and downgrading or upgrading to 2022 until bugs are fixed

I can confirm, crashes in 2022.3 with openGL on launch but not on Vulkan, however we cannot switch due to project requirements