Meumeu / WiVRn

An OpenXR streaming application to a standalone headset
GNU General Public License v3.0
134 stars 22 forks source link

Client crashes on Quest 3 #38

Closed Kierek closed 4 months ago

Kierek commented 4 months ago

I’ve been trying to run the client from the following branches: main, dev, and gui, but none of them launches successfully. The application crashes immediately upon startup. Logs from version v0.10.2-debug:

11:30:25.196  I  StartAppTransition: app=org.meumeu.wivrn
11:30:25.199  I  Passthrough transition for org.meumeu.wivrn: 0 (background "black", [App Launched already: 0] [MR home enabled: 1], [App Enabled for
                 PT: 0])
11:30:25.199  I  ---------- InterstitialRenderer LoggerSession Begin ----------
                 ID: db31d20943a55754307b92c8ce86709f
                 Frame Type: Black[2]
                 Event Type: start
                 Status: Started [3]
                 [Start Time 18230831]
                     [event_type: start]
                     [description: (background)Loading dots over 'black' background]
                     [client_package_name: org.meumeu.wivrn]
                     [transition_type: 0]
                     [frame_type: 2]

                 ---------- InterstitialRenderer LoggerSession End ----------
11:30:25.199  I  ---------- InterstitialRenderer LoggerSession Begin ----------
                 ID: 17bb044f3a75fb36b2c03297ea67bad2
                 Frame Type: 3Dots[4]
                 Event Type: start
                 Status: Started [3]
                 [Start Time 18230831]
                     [event_type: start]
                     [description: (dots)Loading dots over 'black' background]
                     [client_package_name: org.meumeu.wivrn]
                     [transition_type: 0]
                     [frame_type: 4]

                 ---------- InterstitialRenderer LoggerSession End ----------
11:30:25.199  I  StartAppTransition: Loading dots over 'black' background. [app=org.meumeu.wivrn]
11:30:25.201  I  [BoundarylessModeMgr::HandleImmersiveAppChange] Immersive App: com.oculus.shellenv -> org.meumeu.wivrn
11:30:25.202  I  [BoundarylessModeMgr::SetRunningAppType] org.meumeu.wivrn is app type: BoundaryRequired
11:30:25.202  I  [GuardianSystem::SetUserPackageBoundarylessModeEnabled] org.meumeu.wivrn: false
11:30:25.209  I  Top Activity changed to: org.meumeu.wivrn, is ShellEnv active: 0, is in VRUI: 0
11:30:25.211  D  onForegroundActivitiesChanged: Instance: com.oculus.common.activitymanager.ActivityManagerUtilsHelper@6fc447, Pid: 15348, Tid: 10213, foregroundActivities: true, foreground
                 app: org.meumeu.wivrn, previous app: com.oculus.shellenv
11:30:25.212  D  onForegroundActivitiesChanged: Instance: com.oculus.common.activitymanager.ActivityManagerUtilsHelper@f1034ad, Pid: 15348, Tid: 10213, foregroundActivities: true, foreground
                 app: org.meumeu.wivrn, previous app: com.oculus.shellenv
11:30:25.212  D  Received ActivityStateChanges - org.meumeu.wivrn
11:30:25.212  D  Updated current destination - org.meumeu.wivrn
11:30:25.212  D  org.meumeu.wivrn is running= true
11:30:25.220  I  [GuardianLaunchCheckMgr::HandleImmersiveAppChange] Immersive App: com.oculus.shellenv -> org.meumeu.wivrn
11:30:25.220  I  [GuardianFocusListener::NotifyImmersiveAppChanged] From app: com.oculus.shellenv To App: org.meumeu.wivrn
11:30:25.221  I  [GuardianFocusListener::UpdateCurrentProcess] org.meumeu.wivrn
11:30:25.221  I  SetCurrentProcessName: org.meumeu.wivrn, previous ProcessName: com.oculus.shellenv
11:30:25.224  V  ANGLE Developer option for 'org.meumeu.wivrn' set to: 'default'
11:30:25.224  V  ANGLE GameManagerService for org.meumeu.wivrn: false
11:30:25.225  I  [GuardianPassthroughMgr::UpdateTransition] - Guardian driven passthrough animation enabled, headset mounted, current process name
                 org.meumeu.wivrn
11:30:25.234  W  null cursor received for query content://com.oculus.ocms.library/apps/org.meumeu.wivrn
11:30:25.240  W  null cursor received for query content://com.oculus.ocms.library/apps/org.meumeu.wivrn
11:30:25.241  W  null cursor received for query content://com.oculus.ocms.library/apps/org.meumeu.wivrn
11:30:25.242  D  Notifying observers org.meumeu.wivrn is in 'recents'= true
11:30:25.267  V  Creating: 0x70ab092a00
11:30:25.268  V  Config: mcc=0 mnc=0 lang=pl cnt=PL orien=2 touch=1 dens=290 keys=1 nav=1 keysHid=3 navHid=0 sdk=32 size=4 long=2 modetype=1 modenight=2
11:30:25.269  V  Start: 0x70ab092a00
11:30:25.270  I  [2024-02-16 11:30:25.269] [WiVRn] [info] dataString = 
11:30:25.270  V  Verbose [GENERAL | xrInitializeLoaderKHR | OpenXR-Loader] : Entering loader trampoline
11:30:25.270  V  Verbose [GENERAL | xrEnumerateInstanceExtensionProperties | OpenXR-Loader] : Entering loader trampoline
11:30:25.271  I  getActiveRuntimeCursor: Querying URI: content://org.khronos.openxr.runtime_broker/openxr/1/abi/arm64-v8a/runtimes/active/0
11:30:25.274  E  Failed to find provider info for org.khronos.openxr.runtime_broker
11:30:25.274  W  Null cursor when querying installable content resolver.
11:30:25.275  I  getActiveRuntimeCursor: Querying URI: content://org.khronos.openxr.system_runtime_broker/openxr/1/abi/arm64-v8a/runtimes/active/0
11:30:25.275  E  Failed to find provider info for org.khronos.openxr.system_runtime_broker
11:30:25.275  W  Null cursor when querying system content resolver.
11:30:25.275  E  Could access neither the installable nor system runtime broker.
11:30:25.275  I  Info [GENERAL |  | OpenXR-Loader] : RuntimeManifestFile::FindManifestFiles - using global runtime file
                 /system/etc/openxr/1/active_runtime.json
11:30:25.275  I  Info [GENERAL |  | OpenXR-Loader] : RuntimeManifestFile::CreateIfValid - attempting to load /system/etc/openxr/1/active_runtime.json
11:30:25.275  D  Initialized DynamicAppDragItem for: org.meumeu.wivrn
11:30:25.275  E  Error [GENERAL |  | OpenXR-Loader] : /system/etc/openxr/1/active_runtime.json library
                 /system/priv-app/VrDriver/VrDriver.apk!/lib/arm64-v8a/libopenxr_forwardloader.so does not appear to exist
11:30:25.275  E  Error [GENERAL | xrEnumerateInstanceExtensionProperties | OpenXR-Loader] : RuntimeInterface::LoadRuntimes - failed to load a runtime
11:30:25.275  E  Error [GENERAL | xrEnumerateInstanceExtensionProperties | OpenXR-Loader] : Failed to find default runtime with
                 RuntimeInterface::LoadRuntime()
11:30:25.275  E  Error [GENERAL | xrEnumerateInstanceExtensionProperties | OpenXR-Loader] : Failed querying extension properties
11:30:25.276  A  /home/runner/work/WiVRn/WiVRn/client/./jnipp.h:53: static JNIEnv &jni::jni_thread::env(): assertion "res" failed
11:30:25.276  A  Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 15375 (Thread-2), pid 15348 (rg.meumeu.wivrn)
11:30:25.300  I  0x6f6e9212a8 msg: overlayCommand:
                 command = immersiveAppChanged
                 immersiveApp = org.meumeu.wivrn
11:30:25.300  I  immersiveAppChanged called with org.meumeu.wivrn
11:30:25.317  I  MIXEDREALITY: MrServiceController: VrFocusManager::Top Activity Changed, topActivity now is: 'org.meumeu.wivrn', immersiveApp now is: ''.
11:30:25.331  D  Impression Event: oculus_impressions_tile_impressioned
                 PersistableBundle[{duration=0, surface=AUI, rawclienttime=1708079425331, utl_uptime_ms=18230963, aui_section=recent, aui_position_in_section=0, content_id=org.meumeu.wivrn, aui_immersive_content_id=org.meumeu.wivrn, position=6, content_type=APP, utl_realtime_ms=178015714, aui_in_app=true, position_x=6, position_y=0}]
11:30:25.487  A  APK-Location: /data/app/~~2wtUSgiZ-fg7bBH6MVa9Dw==/org.meumeu.wivrn-Dfbn08ts9Q9Oy5F2r50-mg==/base.apk
11:30:25.487  A  Cmdline: org.meumeu.wivrn
11:30:25.487  A  pid: 15348, tid: 15375, name: Thread-2  >>> org.meumeu.wivrn <<<
11:30:25.488  A        #02 pc 00000000003af870  /data/app/~~2wtUSgiZ-fg7bBH6MVa9Dw==/org.meumeu.wivrn-Dfbn08ts9Q9Oy5F2r50-mg==/base.apk
                 (BuildId: 696c9710a813fbfd91f0b326b4bb1e4f6f314f99)
11:30:25.488  A        #03 pc 00000000003afee0  /data/app/~~2wtUSgiZ-fg7bBH6MVa9Dw==/org.meumeu.wivrn-Dfbn08ts9Q9Oy5F2r50-mg==/base.apk
                 (BuildId: 696c9710a813fbfd91f0b326b4bb1e4f6f314f99)
11:30:25.488  A        #04 pc 00000000003b0250  /data/app/~~2wtUSgiZ-fg7bBH6MVa9Dw==/org.meumeu.wivrn-Dfbn08ts9Q9Oy5F2r50-mg==/base.apk
                 (BuildId: 696c9710a813fbfd91f0b326b4bb1e4f6f314f99)
11:30:25.488  A        #05 pc 00000000003b02bc  /data/app/~~2wtUSgiZ-fg7bBH6MVa9Dw==/org.meumeu.wivrn-Dfbn08ts9Q9Oy5F2r50-mg==/base.apk
                 (BuildId: 696c9710a813fbfd91f0b326b4bb1e4f6f314f99)
11:30:25.488  A        #06 pc 0000000000392fcc  /data/app/~~2wtUSgiZ-fg7bBH6MVa9Dw==/org.meumeu.wivrn-Dfbn08ts9Q9Oy5F2r50-mg==/base.apk
                 (BuildId: 696c9710a813fbfd91f0b326b4bb1e4f6f314f99)
11:30:25.488  A        #07 pc 0000000000391ed0  /data/app/~~2wtUSgiZ-fg7bBH6MVa9Dw==/org.meumeu.wivrn-Dfbn08ts9Q9Oy5F2r50-mg==/base.apk
                 (BuildId: 696c9710a813fbfd91f0b326b4bb1e4f6f314f99)
11:30:25.488  A        #08 pc 00000000003c76e8  /data/app/~~2wtUSgiZ-fg7bBH6MVa9Dw==/org.meumeu.wivrn-Dfbn08ts9Q9Oy5F2r50-mg==/base.apk
                 (BuildId: 696c9710a813fbfd91f0b326b4bb1e4f6f314f99)
11:30:25.488  A        #09 pc 00000000003c85a4  /data/app/~~2wtUSgiZ-fg7bBH6MVa9Dw==/org.meumeu.wivrn-Dfbn08ts9Q9Oy5F2r50-mg==/base.apk
                 (android_main+128) (BuildId: 696c9710a813fbfd91f0b326b4bb1e4f6f314f99)
11:30:25.488  A        #10 pc 00000000004b4c1c  /data/app/~~2wtUSgiZ-fg7bBH6MVa9Dw==/org.meumeu.wivrn-Dfbn08ts9Q9Oy5F2r50-mg==/base.apk
                 (BuildId: 696c9710a813fbfd91f0b326b4bb1e4f6f314f99)
11:30:25.509  W    Force finishing activity org.meumeu.wivrn/android.app.NativeActivity

It appears that something must have changed since version v62 of quest firmware, because I distinctly remember trying version v0.9 when it was released, and everything worked fine. However, now none of the release clients from versions v0.10.2 to v0.9 are starting for me.

xytovl commented 4 months ago

The error

25.275  E  Error [GENERAL |  | OpenXR-Loader] : /system/etc/openxr/1/active_runtime.json library
                 /system/priv-app/VrDriver/VrDriver.apk!/lib/arm64-v8a/libopenxr_forwardloader.so does not appear to exist

seems to be an issue in Quest firmware: https://communityforums.atmeta.com/t5/OpenXR-Development/v62-breaks-apps-using-the-official-Khronos-OpenXR-Loader/td-p/1148407

It is up to Meta to fix their runtime.

Kierek commented 4 months ago

I managed to compile a working client using the mentioned fork from the link you provided. I simply replaced the link to the openxr loader in the CMakeLists file with this

It worked with both main and dev branches.

xytovl commented 4 months ago

https://github.com/Meumeu/WiVRn/commit/fa3641c96da7be171a8f3056600b079bc996f024 updates OpenXR loader to https://github.com/KhronosGroup/OpenXR-SDK-Source/releases/tag/release-1.0.34 which according to release notes fixes the issue. Can you confirm this fixes the issue?

Kierek commented 4 months ago

It works fine with loader 1.0.34, thanks.

Meumeu commented 4 months ago

Fixed in v0.11