godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
88.73k stars 20.12k forks source link

OpenXR/WebXR projects hang on PICO 4 headset (Multiview extension not supported) #85422

Open svok opened 9 months ago

svok commented 9 months ago

Godot version

4.1.1, 4.2.rc1

System information

Ubuntu (Compilation), PICO4 Android (OpenXR), PICO Browser (WebXR)

Issue description

OpenXR and WebXR both hang while starting (right after Enter VR button is pressed) on PICO 4 headset. Samples at https://immersive-web.github.io/webxr-samples/ all work properly

Steps to reproduce

OpenXR

  1. Make project according to https://docs.godotengine.org/en/stable/tutorials/xr/deploying_to_android.html (OpenXR) or download the project https://github.com/GodotVR/godot-xr-template.
  2. Start the compiled apk in debug mode on PICO 4 headset
  3. See infinite loading icon
  4. Get "The App is Not Responding. Close App?" message.

WebXR

  1. Make project according to https://www.snopekgames.com/tutorial/2023/how-make-vr-game-webxr-godot-4 (WebXR) or download the project https://github.com/msub2/godot-webxr-template.
  2. Compile and publish the project to Godot web server.
  3. Enter the resource with PICO Browser
  4. Wait for Enter VR button to appear and press it
  5. See infinite loading icon

Minimal reproduction project

Either https://github.com/GodotVR/godot-xr-template or https://github.com/msub2/godot-webxr-template

dsnopek commented 9 months ago

Thanks!

For OpenXR, do you get any interesting errors via adb logcat?

For WebXR, I'm not sure how the PICO Browser works (because I don't have a Pico headset), but the Meta Browser is a fork of Chrome, so you can do Chrome remote debugging the same way you'd do with an Android phone (it's described in my tutorial that you linked above). If you can do that, do you get any interesting error messages in the browser console?

Unfortunately, since I don't have a Pico headset, I'll need to rely on you to send debugging information (and test any changes, if we come up with something to try).

svok commented 9 months ago

@dsnopek Thank you for your response. What concerns WebXR. Further is the log

Site cannot be installed: Page has no manifest <link> URL
tmp_js_export.js:14096 Godot Engine v4.1.1.stable.official.bd6af8e0e - https://godotengine.org
tmp_js_export.js:14096 OpenGL API OpenGL ES 3.0 (WebGL 2.0 (OpenGL ES 3.0 Chromium)) - Compatibility - Using Device: WebKit - WebKit WebGL
tmp_js_export.js:8731 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu
init @ tmp_js_export.js:8731
_godot_audio_init @ tmp_js_export.js:8838
$AudioDriverWeb::init() @ 0c7911e2:0x65e51
$AudioDriverManager::initialize(int) @ 0c7911e2:0x9eeca
$Main::setup2() @ 0c7911e2:0x9c5f7
$Main::setup(char const*, int, char**, bool) @ 0c7911e2:0x8b24a
$godot_web_main(int, char**) @ 0c7911e2:0x85a1f
$main @ 0c7911e2:0x8fe9c
(anonymous) @ tmp_js_export.js:817
callMain @ tmp_js_export.js:13585
(anonymous) @ tmp_js_export.js:14434
(anonymous) @ tmp_js_export.js:14429
Promise.then (async)
(anonymous) @ tmp_js_export.js:14428
Promise.then (async)
start @ tmp_js_export.js:14407
(anonymous) @ tmp_js_export.js:14470
Promise.then (async)
startGame @ tmp_js_export.js:14469
(anonymous) @ tmp_js_export.html:231
(anonymous) @ tmp_js_export.html:251
tmp_js_export.js:14096  
tmp_js_export.js:14111 Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread
onPrintError @ tmp_js_export.js:14111
warnOnce @ tmp_js_export.js:5793
_emscripten_check_blocking_allowed @ tmp_js_export.js:6356
$__pthread_cond_timedwait @ 0c7911e2:0x1a0c189
$pthread_cond_wait @ 0c7911e2:0x3e09ef
$std::__2::__libcpp_condvar_wait(pthread_cond_t*, pthread_mutex_t*) @ 0c7911e2:0x1a16946
$std::__2::condition_variable::wait(std::__2::unique_lock<std::__2::mutex>&) @ 0c7911e2:0x513dde
$tvg::Task::done() @ 0c7911e2:0x51b680
$SvgLoader::paint() @ 0c7911e2:0x526365
$tvg::Picture::Impl::load() @ 0c7911e2:0x5215ed
$tvg::Picture::Impl::update(tvg::RenderMethod&, tvg::RenderTransform const*, unsigned int, tvg::Array<void*>&, tvg::RenderUpdateFlag, bool) @ 0c7911e2:0x52111f
$tvg::PaintMethod<tvg::Picture::Impl>::update(tvg::RenderMethod&, tvg::RenderTransform const*, unsigned int, tvg::Array<void*>&, tvg::RenderUpdateFlag, bool) @ 0c7911e2:0x521109
$tvg::Paint::Impl::update(tvg::RenderMethod&, tvg::RenderTransform const*, unsigned int, tvg::Array<void*>&, unsigned int, bool) @ 0c7911e2:0x51e902
$tvg::Canvas::Impl::update(tvg::Paint*, bool) @ 0c7911e2:0x53c21a
$tvg::Canvas::Impl::push(std::__2::unique_ptr<tvg::Paint, std::__2::default_delete<tvg::Paint>>) @ 0c7911e2:0x53c0a1
$tvg::Canvas::push(std::__2::unique_ptr<tvg::Paint, std::__2::default_delete<tvg::Paint>>) @ 0c7911e2:0x53c033
$ImageLoaderSVG::create_image_from_utf8_buffer(Ref<Image>, Vector<unsigned char> const&, float, bool) @ 0c7911e2:0x53d66f
$ImageLoaderSVG::create_image_from_string(Ref<Image>, String, float, bool, HashMap<Color, Color, HashMapHasherDefault, HashMapComparatorDefault<Color>, DefaultTypedAllocator<HashMapElement<Color, Color>>> const&) @ 0c7911e2:0x53db57
$generate_icon(int) @ 0c7911e2:0x1054342
$fill_default_theme(Ref<Theme>&, Ref<Font> const&, Ref<Font> const&, Ref<Font> const&, Ref<Font> const&, Ref<Texture2D>&, Ref<StyleBox>&, float) @ 0c7911e2:0x103d4bf
$make_default_theme(float, Ref<Font>, TextServer::SubpixelPositioning, TextServer::Hinting, TextServer::FontAntialiasing, bool, bool) @ 0c7911e2:0x1054ca8
$ThemeDB::initialize_theme() @ 0c7911e2:0xa6efa
$Main::setup2() @ 0c7911e2:0x9d5d4
$Main::setup(char const*, int, char**, bool) @ 0c7911e2:0x8b24a
$godot_web_main(int, char**) @ 0c7911e2:0x85a1f
$main @ 0c7911e2:0x8fe9c
(anonymous) @ tmp_js_export.js:817
callMain @ tmp_js_export.js:13585
(anonymous) @ tmp_js_export.js:14434
(anonymous) @ tmp_js_export.js:14429
Promise.then (async)
(anonymous) @ tmp_js_export.js:14428
Promise.then (async)
start @ tmp_js_export.js:14407
(anonymous) @ tmp_js_export.js:14470
Promise.then (async)
startGame @ tmp_js_export.js:14469
(anonymous) @ tmp_js_export.html:231
(anonymous) @ tmp_js_export.html:251
tmp_js_export.js:8872 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu
_godot_audio_resume @ tmp_js_export.js:8872
$AudioDriverWeb::resume() @ 0c7911e2:0x66b48
$OS_Web::resume_audio() @ 0c7911e2:0x69175
$DisplayServerWeb::touch_callback(int, int) @ 0c7911e2:0x7244d
touch_cb @ tmp_js_export.js:10287
tmp_js_export.js:14096 Reference space type: local-floor
tmp_js_export.js:14096 Button release: trigger_click
tmp_js_export.js:14096 Button release: grip_click
tmp_js_export.js:14096 Button release: touchpad_click
tmp_js_export.js:14096 Button release: thumbstick_click
tmp_js_export.js:14096 Button release: ax_button
tmp_js_export.js:14096 Button release: by_button
tmp_js_export.js:11345 Uncaught TypeError: Failed to execute 'createProjectionLayer' on 'XRWebGLBinding': not support kTextureArray now!
    at Object.getLayer (tmp_js_export.js:11345:33)
    at Object.getSubImage (tmp_js_export.js:11361:28)
    at _godot_webxr_get_render_target_size (tmp_js_export.js:11502:30)
    at WebXRInterfaceJS::get_render_target_size() (0c7911e2:0x6ed62d)
    at RendererViewport::draw_viewports() (0c7911e2:0x142631b)
    at RenderingServerDefault::_draw(bool, double) (0c7911e2:0x144f23a)
    at RenderingServerDefault::draw(bool, double) (0c7911e2:0x14511a3)
    at Main::iteration() (0c7911e2:0x8e0ba)
    at OS_Web::main_loop_iterate() (0c7911e2:0x8dbbc)
    at main_loop_callback() (0c7911e2:0x8d784)

image

Later I will try to extract some logging from OpenXR

svok commented 9 months ago

The Android logs from Logcat

--------- beginning of main
--------- beginning of system
2023-11-30 11:50:48.431  2771-3255  Shortcut                com.pvr.shortcut                     I  DockManager,RecentAppDataManager , getRecentApps end, { , [task not running , pkg=org.godotengine.godotxrtoolsdemo , taskId=1109] , [task not running , pkg=com.example.myapplication.android , taskId=1106]}
2023-11-30 11:50:48.745  4702-4702  Utils                   com.pvr.appmanager                   I  info: Godot XR Tools Demo,other,2d_app#com.example.myapplication.android.MainActivity,other,2d_app#Godot XR Tools Demo,other,2d_app#PICO Browser,store,app#System Update,other,pre_app#My Application,store,app#PICO 视频,store,app#User Center,store,app#Screencast,other,pre_app#Settings,other,pre_app#Friends,store,app#File Manager,other,pre_app#Virtual Environment,other,pre_app#User Guide,other,pre_app#Wolvic,other,sdk_app#RuStore,other,2d_app#MR Space,store,game#Telegram,other,2d_app#RUTUBE,other,2d_app#Feedback,other,pre_app#Events,store,app#Streaming Assistant,store,app#Godot Editor 4,other,2d_app#
2023-11-30 11:50:49.297  4702-4702  AllAppActivity          com.pvr.appmanager                   I  0-------org.godotengine.godotxrtoolsdemo
2023-11-30 11:50:49.297  4702-4702  StartControl            com.pvr.appmanager                   I  StartControl Start. org.godotengine.godotxrtoolsdemo,isGame = false
2023-11-30 11:50:49.301  1405-14219 ActivityTaskManager     system_server                        I  START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=org.godotengine.godotxrtoolsdemo/com.godot.game.GodotApp (has extras)} from uid 1000
2023-11-30 11:50:49.301  1861-1861  PxrAppSplashManager     com.pico.xr.openxr_runtime           I  ActivityStartingListener packageName == org.godotengine.godotxrtoolsdemo
2023-11-30 11:50:49.301  1869-2094  SYSTEM_EXT              com.picovr.systemext                 I  VDM handleStartActivity : ActivityInfo{1a7f5fa com.godot.game.GodotApp}, sourceActivityInfo : ActivityInfo{ad217ab com.pvr.appmanager.AllAppActivity}, callingPackage : com.pvr.appmanager, intent=Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=org.godotengine.godotxrtoolsdemo/com.godot.game.GodotApp (has extras) }, currentResumed: false
2023-11-30 11:50:49.302  1869-2094  SYSTEM_EXT              com.picovr.systemext                 I  VDM quick allow start activity in vrShell : org.godotengine.godotxrtoolsdemo/com.godot.game.GodotApp
2023-11-30 11:50:49.302  1405-14219 ActivitySt...trollerExt system_server                        I  check if allow start activity : ActivityRecord{47e1727 u0 org.godotengine.godotxrtoolsdemo/com.godot.game.GodotApp t-1}, source: ActivityRecord{b76bbf6 u0 com.pvr.appmanager/.AllAppActivity t1059}, startResult: 0
2023-11-30 11:50:49.305   965-2196  Stationservice          stationservice                       E  KEYLOG:stationservice power control onEventChange, activity_status activityStarting:org.godotengine.godotxrtoolsdemo,com.godot.game.GodotApp
2023-11-30 11:50:49.306  1405-14219 ActivitySt...trollerExt system_server                        I  notifyDefaultDisplayTaskMoveToFront : TaskInfo{userId=0 stackId=56 taskId=1110 displayId=0 isRunning=true baseIntent=Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=org.godotengine.godotxrtoolsdemo/com.godot.game.GodotApp (has extras) } baseActivity=ComponentInfo{org.godotengine.godotxrtoolsdemo/com.godot.game.GodotApp} topActivity=ComponentInfo{org.godotengine.godotxrtoolsdemo/com.godot.game.GodotApp} origActivity=null realActivity=ComponentInfo{org.godotengine.godotxrtoolsdemo/com.godot.game.GodotApp} numActivities=1 lastActiveTime=308004605 supportsSplitScreenMultiWindow=true resizeMode=2
2023-11-30 11:50:49.308  1869-2169  SYSTEM_EXT              com.picovr.systemext                 W  onTopActivityChanged top [ComponentInfo{org.godotengine.godotxrtoolsdemo/com.godot.game.GodotApp}], pre [ComponentInfo{com.pvr.vrshell/com.pvr.vrshell.MainActivity}]
2023-11-30 11:50:49.313  1869-2183  CameraKeyConfigurator   com.picovr.systemext                 I  onTopActivityChanged : org.godotengine.godotxrtoolsdemo
2023-11-30 11:50:49.354  7405-7405  odotxrtoolsdem          org.godotengine.godotxrtoolsdemo     I  Late-enabling -Xcheck:jni
2023-11-30 11:50:49.359  7405-7405  odotxrtoolsdemo         org.godotengine.godotxrtoolsdemo     W  type=1400 audit(0.0:6355): avc: denied { write } for path="/dev/blkio/tasks" dev="cgroup" ino=5 scontext=u:r:untrusted_app:s0:c137,c256,c512,c768 tcontext=u:object_r:cgroup:s0 tclass=file permissive=0
2023-11-30 11:50:49.359  7405-7405  Binder:7405_1           org.godotengine.godotxrtoolsdemo     W  type=1400 audit(0.0:6356): avc: denied { write } for path="/dev/blkio/tasks" dev="cgroup" ino=5 scontext=u:r:untrusted_app:s0:c137,c256,c512,c768 tcontext=u:object_r:cgroup:s0 tclass=file permissive=0
2023-11-30 11:50:49.359  1405-1518  AUTO_FREEZE             system_server                        I  makeQuickJudgment, uid:10137 to freeze for totalState:0 |isFrozen:false |procState:20 |reason:check start process pid:7405 processName:org.godotengine.godotxrtoolsdemo
2023-11-30 11:50:49.360  1405-1518  ActivityManager         system_server                        I  Start proc 7405:org.godotengine.godotxrtoolsdemo/u0a137 for activity {org.godotengine.godotxrtoolsdemo/com.godot.game.GodotApp}
2023-11-30 11:50:49.364  7405-7405  odotxrtoolsdem          org.godotengine.godotxrtoolsdemo     E  Unknown bits set in runtime_flags: 0x8000
2023-11-30 11:50:49.367  7405-22897 libprocessgroup         org.godotengine.godotxrtoolsdemo     E  AddTidToCgroup failed to write '22897'; fd=43: Permission denied
2023-11-30 11:50:49.367  7405-22897 libprocessgroup         org.godotengine.godotxrtoolsdemo     E  Failed to add task into cgroup
2023-11-30 11:50:49.367  7405-22897 libprocessgroup         org.godotengine.godotxrtoolsdemo     W  Failed to apply BlkIOForeground task profile: Permission denied
2023-11-30 11:50:49.367  7405-22898 libprocessgroup         org.godotengine.godotxrtoolsdemo     E  AddTidToCgroup failed to write '22898'; fd=43: Permission denied
2023-11-30 11:50:49.367  7405-22898 libprocessgroup         org.godotengine.godotxrtoolsdemo     E  Failed to add task into cgroup
2023-11-30 11:50:49.367  7405-22898 libprocessgroup         org.godotengine.godotxrtoolsdemo     W  Failed to apply BlkIOForeground task profile: Permission denied
2023-11-30 11:50:49.369  7405-7405  Binder:7405_1           org.godotengine.godotxrtoolsdemo     W  type=1400 audit(0.0:6357): avc: denied { write } for path="/dev/blkio/tasks" dev="cgroup" ino=5 scontext=u:r:untrusted_app:s0:c137,c256,c512,c768 tcontext=u:object_r:cgroup:s0 tclass=file permissive=0
2023-11-30 11:50:49.372  7405-22898 ActivityThread          org.godotengine.godotxrtoolsdemo     W  onBindApplication appInfo [org.godotengine.godotxrtoolsdemo], [-1]
2023-11-30 11:50:49.374  7405-22900 libprocessgroup         org.godotengine.godotxrtoolsdemo     E  AddTidToCgroup failed to write '22900'; fd=43: Permission denied
2023-11-30 11:50:49.374  7405-22900 libprocessgroup         org.godotengine.godotxrtoolsdemo     E  Failed to add task into cgroup
2023-11-30 11:50:49.374  7405-22900 libprocessgroup         org.godotengine.godotxrtoolsdemo     W  Failed to apply BlkIOForeground task profile: Permission denied
2023-11-30 11:50:49.379  7405-7405  LoadedApk               org.godotengine.godotxrtoolsdemo     I  add verifyjar
2023-11-30 11:50:49.380  7405-7405  odotxrtoolsdem          org.godotengine.godotxrtoolsdemo     I  The ClassLoaderContext is a special shared library.
2023-11-30 11:50:49.381  2130-2748  SpeechService           com.pvr.voiceassistant               I  onForegroundActivitiesChanged: currFocusedPackageName = org.godotengine.godotxrtoolsdemo
2023-11-30 11:50:49.383  2130-2748  SpeechService           com.pvr.voiceassistant               I  onForegroundActivitiesChanged: currFocusedPackageName = org.godotengine.godotxrtoolsdemo
2023-11-30 11:50:49.385  1405-1509  EnduranceModeService    system_server                        I  [FEAT_ENDURANCE_MODE][0] front org.godotengine.godotxrtoolsdemo
2023-11-30 11:50:49.426  7405-7405  Perf                    org.godotengine.godotxrtoolsdemo     I  Connecting to perf service.
2023-11-30 11:50:49.429  7405-7405  odotxrtoolsdemo         org.godotengine.godotxrtoolsdemo     W  type=1400 audit(0.0:6358): avc: denied { write } for path="/dev/blkio/tasks" dev="cgroup" ino=5 scontext=u:r:untrusted_app:s0:c137,c256,c512,c768 tcontext=u:object_r:cgroup:s0 tclass=file permissive=0
2023-11-30 11:50:49.434  7405-7405  SysMonitorFwBridge      org.godotengine.godotxrtoolsdemo     I  sISysMonitorFwFactory = android.app.SysMonitorFwFactoryImpl@ba02f5
2023-11-30 11:50:49.434  7405-7405  odotxrtoolsdem          org.godotengine.godotxrtoolsdemo     I  hprofopt setDumpFlag: 0
2023-11-30 11:50:49.435  7405-7405  ActivityThread          org.godotengine.godotxrtoolsdemo     W  notifyAppLaunchStatus org.godotengine.godotxrtoolsdemo com.godot.game.GodotApp
2023-11-30 11:50:49.436  7405-22913 libprocessgroup         org.godotengine.godotxrtoolsdemo     E  AddTidToCgroup failed to write '22913'; fd=43: Permission denied
2023-11-30 11:50:49.436  7405-22913 libprocessgroup         org.godotengine.godotxrtoolsdemo     E  Failed to add task into cgroup
2023-11-30 11:50:49.436  7405-22913 libprocessgroup         org.godotengine.godotxrtoolsdemo     W  Failed to apply BlkIOForeground task profile: Permission denied
2023-11-30 11:50:49.475  7405-7405  SensorManager           org.godotengine.godotxrtoolsdemo     E  getFullSensorList check calling is 10137
2023-11-30 11:50:49.475  7405-7405  chatty                  org.godotengine.godotxrtoolsdemo     I  uid=10137(org.godotengine.godotxrtoolsdemo) identical 2 lines
2023-11-30 11:50:49.475  7405-7405  SensorManager           org.godotengine.godotxrtoolsdemo     E  getFullSensorList check calling is 10137
2023-11-30 11:50:49.477  7405-7405  linker                  org.godotengine.godotxrtoolsdemo     W  Warning: "/data/app/org.godotengine.godotxrtoolsdemo-E0wxQx_O_FCYuTzprPNQhw==/base.apk!/lib/arm64-v8a/libc++_shared.so" unused DT entry: unknown processor-specific (type 0x70000001 arg 0x0) (ignoring)
2023-11-30 11:50:49.520  7405-7405  SensorManager           org.godotengine.godotxrtoolsdemo     E  sensor or listener is null
2023-11-30 11:50:49.521  7405-7405  chatty                  org.godotengine.godotxrtoolsdemo     I  uid=10137(org.godotengine.godotxrtoolsdemo) identical 1 line
2023-11-30 11:50:49.521  7405-7405  SensorManager           org.godotengine.godotxrtoolsdemo     E  sensor or listener is null
2023-11-30 11:50:49.521   965-2196  Stationservice          stationservice                       E  KEYLOG:stationservice power control onEventChange, activity_status activityOnResume:org.godotengine.godotxrtoolsdemo,android.app.ExtActivityImpl
2023-11-30 11:50:49.523  7405-7405  stereo                  org.godotengine.godotxrtoolsdemo     E  PackageName:org.godotengine.godotxrtoolsdemo type:null
2023-11-30 11:50:49.535  7405-22900 ViewRootImpl            org.godotengine.godotxrtoolsdemo     I  windowFocusChanged true,org.godotengine.godotxrtoolsdemo/com.godot.game.GodotApp,android.view.ViewRootImpl$W.windowFocusChanged:8670 android.view.IWindow$Stub.onTransact:411 android.os.Binder.execTransactInternal:1030 android.os.Binder.execTransact:1003 <bottom of call stack> <bottom of call stack> 
2023-11-30 11:50:49.536  7405-22913 AdrenoGLES-0            org.godotengine.godotxrtoolsdemo     I  QUALCOMM build                   : 76b617b5a7, I2d63e0ecd9
                                                                                                    Build Date                       : 10/31/22
                                                                                                    OpenGL ES Shader Compiler Version: E031.41.05.00
                                                                                                    Local Branch                     : 
                                                                                                    Remote Branch                    : refs/tags/AU_LINUX_ANDROID_LA.UM.8.12.C3.10.00.00.670.284
                                                                                                    Remote Branch                    : NONE
                                                                                                    Reconstruct Branch               : NOTHING
2023-11-30 11:50:49.536  7405-22913 AdrenoGLES-0            org.godotengine.godotxrtoolsdemo     I  Build Config                     : S P 8.0.12 AArch64
2023-11-30 11:50:49.536  7405-22913 AdrenoGLES-0            org.godotengine.godotxrtoolsdemo     I  Driver Path                      : /vendor/lib64/egl/libGLESv2_adreno.so
2023-11-30 11:50:49.536  7405-22913 AdrenoGLES-0            org.godotengine.godotxrtoolsdemo     I  Driver Version                   : 0682.0
2023-11-30 11:50:49.539  7405-22913 AdrenoGLES-0            org.godotengine.godotxrtoolsdemo     I  PFP: 0x016dd109, ME: 0x00000000
2023-11-30 11:50:49.539  7405-7405  VpsExtension            org.godotengine.godotxrtoolsdemo     E  Failed to get binder for service "vendor.vpsservice"
2023-11-30 11:50:49.541  7405-7405  VpsExtension            org.godotengine.godotxrtoolsdemo     E  Failed to get binder for service "vendor.vpsservice"
2023-11-30 11:50:49.542  7405-22928 godot                   org.godotengine.godotxrtoolsdemo     I  Godot Engine v4.1.1.stable.official.bd6af8e0e - https://godotengine.org
2023-11-30 11:50:49.542  7405-7405  ViewRootImpl            org.godotengine.godotxrtoolsdemo     W  Will skip draw vr actvity :org.godotengine.godotxrtoolsdemo/com.godot.game.GodotApp
2023-11-30 11:50:49.556  1405-1509  ActivityTaskManager     system_server                        I  Displayed org.godotengine.godotxrtoolsdemo/com.godot.game.GodotApp: +254ms   systype : 10
2023-11-30 11:50:49.557  7405-7405  ViewRootImpl            org.godotengine.godotxrtoolsdemo     W  Will skip draw vr actvity :org.godotengine.godotxrtoolsdemo/com.godot.game.GodotApp
2023-11-30 11:50:49.565  7405-22928 godot                   org.godotengine.godotxrtoolsdemo     E  USER ERROR: Can't open dynamic library: libopenxr_loader.so. Error: dlopen failed: library "libopenxr_loader.so" not found.
2023-11-30 11:50:49.565  7405-22928 godot                   org.godotengine.godotxrtoolsdemo     E     at: open_dynamic_library (platform/android/os_android.cpp:170)
2023-11-30 11:50:49.565  7405-22928 godot                   org.godotengine.godotxrtoolsdemo     E  USER ERROR: OpenXR loader not found.
2023-11-30 11:50:49.565  7405-22928 godot                   org.godotengine.godotxrtoolsdemo     E     at: openxr_loader_init (modules/openxr/openxr_api.cpp:1213)
2023-11-30 11:50:49.565  7405-22928 godot                   org.godotengine.godotxrtoolsdemo     E  USER WARNING: OpenXR was requested but failed to start.
                                                                                                    Please check if your HMD is connected.
                                                                                                    When using Windows MR please note that WMR only has DirectX support, make sure SteamVR is your default OpenXR runtime.
                                                                                                    Godot will start in normal mode.
2023-11-30 11:50:49.565  7405-22928 godot                   org.godotengine.godotxrtoolsdemo     E     at: initialize_openxr_module (modules/openxr/register_types.cpp:125)
2023-11-30 11:50:49.575  7405-7405  ViewRootImpl            org.godotengine.godotxrtoolsdemo     W  Will skip draw vr actvity :org.godotengine.godotxrtoolsdemo/com.godot.game.GodotApp
2023-11-30 11:50:49.581  7405-22928 AdrenoVK-0              org.godotengine.godotxrtoolsdemo     I  ===== BEGIN DUMP OF OVERRIDDEN SETTINGS =====
2023-11-30 11:50:49.581  7405-22928 AdrenoVK-0              org.godotengine.godotxrtoolsdemo     I  ===== END DUMP OF OVERRIDDEN SETTINGS =====
2023-11-30 11:50:49.583  7405-22928 AdrenoVK-0              org.godotengine.godotxrtoolsdemo     I  QUALCOMM build          : 76b617b5a7, I2d63e0ecd9
                                                                                                    Build Date              : 10/31/22
                                                                                                    Shader Compiler Version : E031.41.05.00
                                                                                                    Local Branch            : 
                                                                                                    Remote Branch           : refs/tags/AU_LINUX_ANDROID_LA.UM.8.12.C3.10.00.00.670.284
                                                                                                    Remote Branch           : NONE
                                                                                                    Reconstruct Branch      : NOTHING
2023-11-30 11:50:49.583  7405-22928 AdrenoVK-0              org.godotengine.godotxrtoolsdemo     I  Build Config            : S P 8.0.12 AArch64
2023-11-30 11:50:49.583  7405-22928 AdrenoVK-0              org.godotengine.godotxrtoolsdemo     I  Driver Path             : /vendor/lib64/hw/vulkan.kona.so
2023-11-30 11:50:49.583  7405-22928 AdrenoVK-0              org.godotengine.godotxrtoolsdemo     I  Driver Version          : 0682.0
2023-11-30 11:50:49.583  7405-22928 AdrenoVK-0              org.godotengine.godotxrtoolsdemo     I  PFP                     : 0x016dd109
2023-11-30 11:50:49.583  7405-22928 AdrenoVK-0              org.godotengine.godotxrtoolsdemo     I  ME                      : 0x00000000
2023-11-30 11:50:49.583  7405-22928 AdrenoVK-0              org.godotengine.godotxrtoolsdemo     I  Application Name    : Godot XR Tools Demo
                                                                                                    Application Version : 0x00000000
                                                                                                    Engine Name         : Godot Engine
                                                                                                    Engine Version      : 0x01001001
                                                                                                    Api Version         : 0x00402000
2023-11-30 11:50:49.584  7405-22928 godot                   org.godotengine.godotxrtoolsdemo     I  Vulkan API 1.1.128 - Forward Mobile - Using Vulkan Device #0: Qualcomm - Adreno (TM) 650
2023-11-30 11:50:49.591  7405-7405  stereo                  org.godotengine.godotxrtoolsdemo     E  PackageName:org.godotengine.godotxrtoolsdemo type:null
2023-11-30 11:50:49.597  7405-22900 ViewRootImpl            org.godotengine.godotxrtoolsdemo     I  windowFocusChanged true,org.godotengine.godotxrtoolsdemo/com.godot.game.GodotApp,android.view.ViewRootImpl$W.windowFocusChanged:8670 android.view.IWindow$Stub.onTransact:411 android.os.Binder.execTransactInternal:1030 android.os.Binder.execTransact:1003 <bottom of call stack> <bottom of call stack> 
2023-11-30 11:50:49.618  7405-22913 SysMtpClient            org.godotengine.godotxrtoolsdemo     I  Get SysMtpService start!
2023-11-30 11:50:49.618  7405-22913 MTPDATA                 org.godotengine.godotxrtoolsdemo     E  map fd(88) fdSize(135200) getSize(135200) address(0x794f8a4000)
2023-11-30 11:50:49.618  7405-22913 MTPDATA                 org.godotengine.godotxrtoolsdemo     E  map fd(91) fdSize(1568) getSize(1568) address(0x7963d1f000)
2023-11-30 11:50:49.618  7405-22913 MTPDATA                 org.godotengine.godotxrtoolsdemo     E  map fd(92) fdSize(108576) getSize(108576) address(0x795a6e7000)
2023-11-30 11:50:49.618  7405-22913 MTPDATA                 org.godotengine.godotxrtoolsdemo     E  map fd(93) fdSize(589856) getSize(589856) address(0x78e92f5000)
2023-11-30 11:50:49.618  7405-22913 MTPDATA                 org.godotengine.godotxrtoolsdemo     E  map fd(94) fdSize(6176) getSize(6176) address(0x79633b0000)
2023-11-30 11:50:49.618  7405-22913 MTPDATA                 org.godotengine.godotxrtoolsdemo     E  map fd(95) fdSize(10784) getSize(10784) address(0x796337b000)
2023-11-30 11:50:49.618  7405-22913 MTPDATA                 org.godotengine.godotxrtoolsdemo     E  map fd(96) fdSize(6176) getSize(6176) address(0x7963379000)
2023-11-30 11:50:49.618  7405-22913 MTPDATA                 org.godotengine.godotxrtoolsdemo     E  map fd(97) fdSize(4128) getSize(4128) address(0x796333d000)
2023-11-30 11:50:49.618  7405-22913 MTPDATA                 org.godotengine.godotxrtoolsdemo     E  map fd(98) fdSize(14368) getSize(14368) address(0x7963339000)
2023-11-30 11:50:49.618  7405-22913 MTPDATA                 org.godotengine.godotxrtoolsdemo     E  map fd(99) fdSize(43040) getSize(43040) address(0x796253f000)
2023-11-30 11:50:49.618  7405-22913 MTPDATA                 org.godotengine.godotxrtoolsdemo     E  map fd(100) fdSize(84000) getSize(84000) address(0x79621e4000)
2023-11-30 11:50:49.618  7405-22913 MTPDATA                 org.godotengine.godotxrtoolsdemo     E  map fd(101) fdSize(14368) getSize(14368) address(0x7963335000)
2023-11-30 11:50:49.619  7405-22913 MTPDATA                 org.godotengine.godotxrtoolsdemo     E  map fd(102) fdSize(6176) getSize(6176) address(0x7963333000)
2023-11-30 11:50:49.619  7405-22913 MTPDATA                 org.godotengine.godotxrtoolsdemo     E  map fd(103) fdSize(6176) getSize(6176) address(0x7963331000)
2023-11-30 11:50:49.619  7405-22913 MTPDATA                 org.godotengine.godotxrtoolsdemo     E  map fd(104) fdSize(12320) getSize(12320) address(0x79632b7000)
2023-11-30 11:50:49.619  7405-22913 MTPDATA                 org.godotengine.godotxrtoolsdemo     E  map fd(105) fdSize(4128) getSize(4128) address(0x79632e1000)
2023-11-30 11:50:49.619  7405-22913 MTPDATA                 org.godotengine.godotxrtoolsdemo     E  map fd(106) fdSize(57376) getSize(57376) address(0x7962331000)
2023-11-30 11:50:49.619  7405-22913 MTPDATA                 org.godotengine.godotxrtoolsdemo     E  map fd(107) fdSize(55328) getSize(55328) address(0x7962531000)
2023-11-30 11:50:49.619  7405-22913 MTPDATA                 org.godotengine.godotxrtoolsdemo     E  map fd(108) fdSize(36) getSize(36) address(0x7963c8b000)
2023-11-30 11:50:49.619  7405-22913 SysMtpClient            org.godotengine.godotxrtoolsdemo     I  Get SysMtpService done!
2023-11-30 11:50:49.632  7405-22900 ViewRootImpl            org.godotengine.godotxrtoolsdemo     I  windowFocusChanged false,org.godotengine.godotxrtoolsdemo/com.godot.game.GodotApp,android.view.ViewRootImpl$W.windowFocusChanged:8670 android.view.IWindow$Stub.onTransact:411 android.os.Binder.execTransactInternal:1030 android.os.Binder.execTransact:1003 <bottom of call stack> <bottom of call stack> 
2023-11-30 11:50:49.640  7405-7405  ViewRootImpl            org.godotengine.godotxrtoolsdemo     W  Will skip draw vr actvity :org.godotengine.godotxrtoolsdemo/com.godot.game.GodotApp
2023-11-30 11:50:49.846  2771-3250  Shortcut                com.pvr.shortcut                     W  AmsUtils , getTopRunningTask ....taskInfo: TaskInfo{userId=0 stackId=56 taskId=1110 displayId=0 isRunning=true baseIntent=Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=org.godotengine.godotxrtoolsdemo/com.godot.game.GodotApp (has extras) } baseActivity=ComponentInfo{org.godotengine.godotxrtoolsdemo/com.godot.game.GodotApp} topActivity=ComponentInfo{org.godotengine.godotxrtoolsdemo/com.godot.game.GodotApp} origActivity=null realActivity=ComponentInfo{org.godotengine.godotxrtoolsdemo/com.godot.game.GodotApp} numActivities=1 lastActiveTime=308004605 supportsSplitScreenMultiWindow=true resizeMode=2
2023-11-30 11:50:49.847  2771-3250  Shortcut                com.pvr.shortcut                     W  AmsUtils , getTopRunningTask ....taskInfo: TaskInfo{userId=0 stackId=56 taskId=1110 displayId=0 isRunning=true baseIntent=Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=org.godotengine.godotxrtoolsdemo/com.godot.game.GodotApp (has extras) } baseActivity=ComponentInfo{org.godotengine.godotxrtoolsdemo/com.godot.game.GodotApp} topActivity=ComponentInfo{org.godotengine.godotxrtoolsdemo/com.godot.game.GodotApp} origActivity=null realActivity=ComponentInfo{org.godotengine.godotxrtoolsdemo/com.godot.game.GodotApp} numActivities=1 lastActiveTime=308004605 supportsSplitScreenMultiWindow=true resizeMode=2
2023-11-30 11:50:49.848  2771-3250  Shortcut                com.pvr.shortcut                     I  DockMainView ifStartExitActivity, isRunning=false, ExitActivity.isRunning=false hasNearVisibleApp=false , isVrApp=false , topApp.component=ComponentInfo{org.godotengine.godotxrtoolsdemo/com.godot.game.GodotApp}
2023-11-30 11:50:50.229  7405-7405  VkThread                org.godotengine.godotxrtoolsdemo     W  type=1400 audit(0.0:6359): avc: denied { write } for path="/dev/blkio/tasks" dev="cgroup" ino=5 scontext=u:r:untrusted_app:s0:c137,c256,c512,c768 tcontext=u:object_r:cgroup:s0 tclass=file permissive=0
2023-11-30 11:50:50.234  7405-22928 GodotInputHandler       org.godotengine.godotxrtoolsdemo     I  === New Input Device: virtual_input_device
2023-11-30 11:50:50.234  7405-22928 GodotInputHandler       org.godotengine.godotxrtoolsdemo     I  === New Input Device: pvr-virtual-input-0
2023-11-30 11:50:50.234  7405-22928 GodotInputHandler       org.godotengine.godotxrtoolsdemo     I  === New Input Device: pvr-virtual-input-1
2023-11-30 11:50:50.234  7405-22928 GodotInputHandler       org.godotengine.godotxrtoolsdemo     I  === New Input Device: pvr-virtual-input-2
2023-11-30 11:50:50.235  7405-22928 GodotInputHandler       org.godotengine.godotxrtoolsdemo     I  === New Input Device: pvr-virtual-input-3
2023-11-30 11:50:50.235  7405-22928 GodotInputHandler       org.godotengine.godotxrtoolsdemo     I  === New Input Device: pvr-virtual-input-4
2023-11-30 11:50:50.235  7405-22928 godot                   org.godotengine.godotxrtoolsdemo     I   
2023-11-30 11:50:50.236  7405-22928 libOpenSLES             org.godotengine.godotxrtoolsdemo     I  Emulating old channel mask behavior (ignoring positional mask 0x3, using default mask 0x3 based on channel count of 2)
2023-11-30 11:50:50.236  7405-22947 libprocessgroup         org.godotengine.godotxrtoolsdemo     E  AddTidToCgroup failed to write '22947'; fd=43: Permission denied
2023-11-30 11:50:50.236  7405-22947 libprocessgroup         org.godotengine.godotxrtoolsdemo     E  Failed to add task into cgroup
2023-11-30 11:50:50.236  7405-22947 libprocessgroup         org.godotengine.godotxrtoolsdemo     W  Failed to apply BlkIOForeground task profile: Permission denied
2023-11-30 11:50:50.267  7405-22928 AudioTrack              org.godotengine.godotxrtoolsdemo     W  createTrack_l(-1): AUDIO_OUTPUT_FLAG_FAST denied by server; frameCount 0 -> 1772
2023-11-30 11:50:50.267  7405-22928 AudioTrack              org.godotengine.godotxrtoolsdemo     I  createTrack_l(): VCMotorTrack 0
2023-11-30 11:50:50.272   948-1559  PxrNotificationClient   audioserver                          I  sendPxrNotification,action:teatracker_event_action id:0,value1:audio_output value2:0,ext:{"channel_mask":3,"content_type":0,"flags":260,"foreground_package_name_far":"","foreground_package_name_near":"","format":1,"output_type":"speaker","package_name":"org.godotengine.godotxrtoolsdemo","sample_rate":44100,"stream_type":3,"usage":1,"volume_ui":11}
2023-11-30 11:50:50.273  1866-2020  PxrNotificationService  com.pvr.pxrnotification              I  sendPxrMessage callingPid:948 action teatracker_event_action ,value1:audio_output ,value2:0 ,ext:{"channel_mask":3,"content_type":0,"flags":260,"foreground_package_name_far":"","foreground_package_name_near":"","format":1,"output_type":"speaker","package_name":"org.godotengine.godotxrtoolsdemo","sample_rate":44100,"stream_type":3,"usage":1,"volume_ui":11} ,mPvrCallbacks.size():17
2023-11-30 11:50:50.361  2771-3250  Shortcut                com.pvr.shortcut                     I  DockManager,RecentAppDataManager , loadRecentApp , appList , size=2 , List=[[index=0 , label=Godot XR Tools Demo , pkg=org.godotengine.godotxrtoolsdemo , isVisible=false , badgeValue=null],[index=1 , label=PICO Browser , pkg=com.pico.browser , isVisible=false , badgeValue=null],]
2023-11-30 11:50:50.647  7405-22928 godot                   org.godotengine.godotxrtoolsdemo     E  USER ERROR: Interface not found.
2023-11-30 11:50:50.647  7405-22928 godot                   org.godotengine.godotxrtoolsdemo     E     at: find_interface (servers/xr_server.cpp:227)
2023-11-30 11:50:50.648  7405-22928 godot                   org.godotengine.godotxrtoolsdemo     I  OpenXR: Configuring interface
2023-11-30 11:50:50.648  7405-22928 godot                   org.godotengine.godotxrtoolsdemo     I  OpenXR: Initializing interface
2023-11-30 11:50:50.648  7405-22928 godot                   org.godotengine.godotxrtoolsdemo     E  USER ERROR: OpenXR: Failed to initialize
2023-11-30 11:50:50.648  7405-22928 godot                   org.godotengine.godotxrtoolsdemo     E     at: push_error (core/variant/variant_utility.cpp:905)
2023-11-30 11:50:51.124  7405-22950 godot                   org.godotengine.godotxrtoolsdemo     E  USER WARNING: res://addons/godot-xr-tools/hands/materials/cleaning_glove.material: In external resource #0, invalid UID: uid://c5cnjs0vgmwpb - using text path instead: res://addons/godot-xr-tools/hands/textures/cleaning_glove_baseColor.png
2023-11-30 11:50:51.124  7405-22950 godot                   org.godotengine.godotxrtoolsdemo     E     at: open (core/io/resource_format_binary.cpp:1056)
2023-11-30 11:50:51.124  7405-22950 godot                   org.godotengine.godotxrtoolsdemo     E  USER WARNING: res://addons/godot-xr-tools/hands/materials/cleaning_glove.material: In external resource #1, invalid UID: uid://bpr3hcb5m0pkc - using text path instead: res://addons/godot-xr-tools/hands/textures/glove_occlusionRoughnessMetallic.png
2023-11-30 11:50:51.124  7405-22950 godot                   org.godotengine.godotxrtoolsdemo     E     at: open (core/io/resource_format_binary.cpp:1056)
2023-11-30 11:50:51.124  7405-22950 godot                   org.godotengine.godotxrtoolsdemo     E  USER WARNING: res://addons/godot-xr-tools/hands/materials/cleaning_glove.material: In external resource #2, invalid UID: uid://dnlns2kfjkwhh - using text path instead: res://addons/godot-xr-tools/hands/textures/glove_normal.png
2023-11-30 11:50:51.124  7405-22950 godot                   org.godotengine.godotxrtoolsdemo     E     at: open (core/io/resource_format_binary.cpp:1056)
2023-11-30 11:50:51.307  7405-22950 godot                   org.godotengine.godotxrtoolsdemo     E  USER WARNING: res://addons/godot-xr-tools/hands/materials/labglove.material: In external resource #0, invalid UID: uid://bv21ei62pffeb - using text path instead: res://addons/godot-xr-tools/hands/textures/labglove_baseColor.png
2023-11-30 11:50:51.307  7405-22950 godot                   org.godotengine.godotxrtoolsdemo     E     at: open (core/io/resource_format_binary.cpp:1056)
2023-11-30 11:50:51.307  7405-22950 godot                   org.godotengine.godotxrtoolsdemo     E  USER WARNING: res://addons/godot-xr-tools/hands/materials/labglove.material: In external resource #1, invalid UID: uid://bpr3hcb5m0pkc - using text path instead: res://addons/godot-xr-tools/hands/textures/glove_occlusionRoughnessMetallic.png
2023-11-30 11:50:51.307  7405-22950 godot                   org.godotengine.godotxrtoolsdemo     E     at: open (core/io/resource_format_binary.cpp:1056)
2023-11-30 11:50:51.307  7405-22950 godot                   org.godotengine.godotxrtoolsdemo     E  USER WARNING: res://addons/godot-xr-tools/hands/materials/labglove.material: In external resource #2, invalid UID: uid://dnlns2kfjkwhh - using text path instead: res://addons/godot-xr-tools/hands/textures/glove_normal.png
2023-11-30 11:50:51.307  7405-22950 godot                   org.godotengine.godotxrtoolsdemo     E     at: open (core/io/resource_format_binary.cpp:1056)
2023-11-30 11:50:51.391  7405-22950 godot                   org.godotengine.godotxrtoolsdemo     E  USER ERROR: Viewport Texture must be set to use it.
2023-11-30 11:50:51.391  7405-22950 godot                   org.godotengine.godotxrtoolsdemo     E     at: get_width (scene/main/viewport.cpp:123)
2023-11-30 11:50:51.391  7405-22950 godot                   org.godotengine.godotxrtoolsdemo     E  USER ERROR: Viewport Texture must be set to use it.
2023-11-30 11:50:51.391  7405-22950 godot                   org.godotengine.godotxrtoolsdemo     E     at: get_height (scene/main/viewport.cpp:133)
2023-11-30 11:50:59.333  2000-2340  APxrRuntime             com.picoxr.xrshell                   E  oxr_session_poll XRT_COMPOSITOR_EVENT_MAIN_SESSION_PACKAGE_CHANGE event, display_state: LOADING, package_name: org.godotengine.godotxrtoolsdemo
2023-11-30 11:50:59.333  2000-2340  XRShell-Native          com.picoxr.xrshell                   E  XR_TYPE_EVENT_DATA_MAIN_SESSION_PACKAGE_CHANGED_PICO, packageName is org.godotengine.godotxrtoolsdemo, displayState is 0
2023-11-30 11:50:59.334  1405-17975 ApiLayer                system_server                        W  showing3dApp [org.godotengine.godotxrtoolsdemo], xrRuntimeState [0]
2023-11-30 11:50:59.335  2130-2130  SpeechService           com.pvr.voiceassistant               I  onShowing3dAppChanged: pkg = org.godotengine.godotxrtoolsdemo
2023-11-30 11:51:04.329  1405-10443 DumpUtils               system_server                        I  LastResumed 3D activityName=com.godot.game.GodotApp
2023-11-30 11:51:04.329  1405-10443 DumpUtils               system_server                        I  LastResumed 3D packageName=org.godotengine.godotxrtoolsdemo
2023-11-30 11:51:19.327  1861-3852  XNR                     com.pico.xr.openxr_runtime           E  org.godotengine.godotxrtoolsdemo tolerate time up
2023-11-30 11:51:19.327  1861-3852  XNR                     com.pico.xr.openxr_runtime           E  show xnr dialog for org.godotengine.godotxrtoolsdemo
2023-11-30 11:51:19.327  1861-3852  PxrNotificationClient   com.pico.xr.openxr_runtime           I  sendPxrNotification,action:teatracker_event_action id:0,value1:xnr_dialog_show value2:0,ext:{"pkg":"org.godotengine.godotxrtoolsdemo","key_app_id":"416094","reason":"loading","alg_err":"0"}
2023-11-30 11:51:19.327  1866-2020  PxrNotificationService  com.pvr.pxrnotification              I  sendPxrMessage callingPid:1861 action teatracker_event_action ,value1:xnr_dialog_show ,value2:0 ,ext:{"pkg":"org.godotengine.godotxrtoolsdemo","key_app_id":"416094","reason":"loading","alg_err":"0"} ,mPvrCallbacks.size():17
2023-11-30 11:51:19.327  1861-3852  XNR                     com.pico.xr.openxr_runtime           W  xnr_dialog_show: {"pkg":"org.godotengine.godotxrtoolsdemo","key_app_id":"416094","reason":"loading","alg_err":"0"}
2023-11-30 11:51:19.328  1405-10443 ApiLayer                system_server                        W  requestShowAnrDialog [org.godotengine.godotxrtoolsdemo], callback android.os.RemoteCallback@e2bb0ac
2023-11-30 11:51:19.329  1869-1869  pvrdisplay              com.picovr.systemext                 W  requestShowAnrDialog [org.godotengine.godotxrtoolsdemo]
2023-11-30 11:51:19.367  1869-2169  SYSTEM_EXT              com.picovr.systemext                 W  updateSubType id [81], subtype [42] top app : ComponentInfo{org.godotengine.godotxrtoolsdemo/com.godot.game.GodotApp}
2023-11-30 11:51:19.913  2771-3255  Shortcut                com.pvr.shortcut                     W  AmsUtils , getTopRunningTask ....taskInfo: TaskInfo{userId=0 stackId=56 taskId=1110 displayId=0 isRunning=true baseIntent=Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=org.godotengine.godotxrtoolsdemo/com.godot.game.GodotApp (has extras) } baseActivity=ComponentInfo{org.godotengine.godotxrtoolsdemo/com.godot.game.GodotApp} topActivity=ComponentInfo{org.godotengine.godotxrtoolsdemo/com.godot.game.GodotApp} origActivity=null realActivity=ComponentInfo{org.godotengine.godotxrtoolsdemo/com.godot.game.GodotApp} numActivities=1 lastActiveTime=308004605 supportsSplitScreenMultiWindow=true resizeMode=2
2023-11-30 11:51:19.914  2771-3255  Shortcut                com.pvr.shortcut                     W  AmsUtils , getTopRunningTask ....taskInfo: TaskInfo{userId=0 stackId=56 taskId=1110 displayId=0 isRunning=true baseIntent=Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=org.godotengine.godotxrtoolsdemo/com.godot.game.GodotApp (has extras) } baseActivity=ComponentInfo{org.godotengine.godotxrtoolsdemo/com.godot.game.GodotApp} topActivity=ComponentInfo{org.godotengine.godotxrtoolsdemo/com.godot.game.GodotApp} origActivity=null realActivity=ComponentInfo{org.godotengine.godotxrtoolsdemo/com.godot.game.GodotApp} numActivities=1 lastActiveTime=308004605 supportsSplitScreenMultiWindow=true resizeMode=2
2023-11-30 11:51:19.914  2771-3255  Shortcut                com.pvr.shortcut                     I  DockMainView ifStartExitActivity, isRunning=false, ExitActivity.isRunning=false hasNearVisibleApp=false , isVrApp=false , topApp.component=ComponentInfo{org.godotengine.godotxrtoolsdemo/com.godot.game.GodotApp}
2023-11-30 11:51:20.418  2771-3255  Shortcut                com.pvr.shortcut                     I  DockManager,RecentAppDataManager , loadRecentApp , appList , size=2 , List=[[index=0 , label=Godot XR Tools Demo , pkg=org.godotengine.godotxrtoolsdemo , isVisible=false , badgeValue=null],[index=1 , label=PICO Browser , pkg=com.pico.browser , isVisible=false , badgeValue=null],]
2023-11-30 11:51:50.275  1405-1530  PowerUsage              system_server                        I  [FEAT_POWER_MONITOR_COMMON][0] long wakelock workSource: AudioMix history: null uid: 10137 pkgName: org.godotengine.godotxrtoolsdemo
dsnopek commented 9 months ago

@svok Thanks!

Addressing WebXR first:

Are you using the WebXR Layers Polyfill as recommended in my tutorial? If not, please try it. Or, if you are using, try removing it.

The relevant error is:

Failed to execute 'createProjectionLayer' on 'XRWebGLBinding': not support kTextureArray now!

Which sounds like it's failing to create a texture array projection layer (via the WebXR Layers API), which is a prerequisite for rendering with multiview, which is how Godot 4 does stereo rendering (whereas Godot 3 didn't use multiview).

Anyway, it's unclear to me if Pico 4 doesn't support this, or if the polyfill is getting in the way, or if the polyfill is needed to emulate this functionality. :-)

dsnopek commented 9 months ago

Now, addressing OpenXR:

The only error we have is:

USER ERROR: OpenXR: Failed to initialize
     at: push_error (core/variant/variant_utility.cpp:905

... which doesn't give us much information. :-/

Since you tried both Godot 4.1 and 4.2, I guess one of my first questions would be: are you sure you used the right version of the OpenXR Vendors Extension? Some versions only work with Godot 4.1, and others only with Godot 4.2.

Also, are you sure you checked "Enable Pico Plugin" in your export settings?

Selection_099

I'm pretty sure that @BastiaanOlij has run Godot on the Pico 4 - he may have some advice beyond my basic questions above :-)

svok commented 9 months ago

@svok Thanks!

Addressing WebXR first:

  1. All the code is made according to your manual.
  2. The WebXR Template contains polyfills in settings out of the box.
  3. The error can be reproduced (relevant or no) with the desktop Chrome browser with the WebXR API Emulator installed (https://chromewebstore.google.com/detail/webxr-api-emulator/mjddjgeghkdijejnciaefnkjmkafnnje).

If I remove polyfill settings behavior differs.

  1. Pico Browser returns absolutely the same error as with polyfills
  2. WebXR API Emulator returns: "Failed to initialize: Unable to make WebGL context compatible with WebXR: TypeError: Failed to construct 'XRWebGLBinding': parameter 1 is not of type 'XRSession'." after pressing "Enter VR". image
dsnopek commented 9 months ago

The error can be reproduced (relevant or no) with the desktop Chrome browser with the WebXR API Emulator installed (https://chromewebstore.google.com/detail/webxr-api-emulator/mjddjgeghkdijejnciaefnkjmkafnnje).

Oh, this is absolutely relevant! I can't test on Pico 4, but on Chrome and with that addon, you and I should be seeing the same results, however, the WebXR project as described in my tutorial works perfectly fine for me in Chrome with the emulator using Godot 4.2-stable.

Just to be sure there wasn't any issue in msub2's recreation of my tutorial, I cloned that repo to test. Regarding something else you said in your comment:

The WebXR Template contains polyfills in settings out of the box.

I'm not seeing this. When I cloned the repo, there were no export presets, so I had to add my own and copy-paste in the polyfill code. But I'm assuming you simply forgot that you had done that step yourself. :-)

In any case, after exporting (with the polyfills added) it worked fine for me in Chrome with the WebXR emulator.

Could you perhaps ZIP your exact project and share it? There must be some difference, because in the emulator, we really should be seeing the same results.

If I remove polyfill settings behavior differs.

Probably this doesn't matter because we've discovered that you are having the same issue in the emulator too, but just to be clear, I was suggesting that you remove only the WebXR Layers Polyfill (the 2nd one), not the WebXR Polyfill (the first one). So, going from:

<script src="https://cdn.jsdelivr.net/npm/webxr-polyfill@latest/build/webxr-polyfill.min.js"></script>
<script>
var polyfill = new WebXRPolyfill();
</script>
<script src="https://cdn.jsdelivr.net/npm/webxr-layers-polyfill@latest/build/webxr-layers-polyfill.min.js"></script>
<script>
var layersPolyfill = new WebXRLayersPolyfill();
</script>

... to:

<script src="https://cdn.jsdelivr.net/npm/webxr-polyfill@latest/build/webxr-polyfill.min.js"></script>
<script>
var polyfill = new WebXRPolyfill();
</script>

Hopefully we'll be able to get to the root of the problem soon :-)

msub2 commented 8 months ago

I'm not seeing this. When I cloned the repo, there were no export presets, so I had to add my own and copy-paste in the polyfill code. But I'm assuming you simply forgot that you had done that step yourself. :-)

That's my bad! I just checked the commit where I added the polyfills on my side and didn't even notice the change wasn't actually in the repo 🙃

DanielKinsman commented 1 month ago

On my pico OpenXR works fine but webxr doesn't appear to. For example none of the webxr projects submitted to the godot xr gamejam work on my pico 4.

dsnopek commented 1 month ago

@DanielKinsman Can you give some more information about how it's not working? Is it just loading forever like the OP? Are you getting some error? Can you get the log messages from the browser console and share them here?

Unfortunately, I don't have access to a Pico 4 headset, so I'll need to debug through you. :-)

Thanks!

DanielKinsman commented 1 month ago

The page loads fine but when I hit the "enter xr" button the screen goes black and we get the flashing "loading ring". The game audio is playing but nothing is displayed. At that moment it also throws this error in the console:

index.js:14091 Uncaught TypeError: Failed to execute 'createProjectionLayer' on 'XRWebGLBinding': not support kTextureArray now!
    at Object.getLayer (index.js:14091:35)
    at Object.getSubImage (index.js:14107:30)
    at _godot_webxr_get_render_target_size (index.js:14252:31)
    at 09dec776:0x968d16
    at 09dec776:0x1aed5d4
    at 09dec776:0x1af9234
    at 09dec776:0xcd4bb
    at callUserCallback (index.js:6377:5)
    at Object.runIter (index.js:7193:7)
    at Browser_mainLoop_runner (index.js:7108:22)

A full console log is at picobrowserconsole.log Nice game btw!

dsnopek commented 1 month ago

@DanielKinsman Which project are you loading? Is it my game from the jam? I'm asking because the next thing I'm curious about is which polyfills are or aren't used in the project, and I know which I used in my mine. :-) Like I was asking the OP in my earlier comment, I wonder if the WebXR Layers polyfill could be causing problems, and it would be interesting to try without it.

The error message is a little odd: it sounds sort of like it's saying it doesn't support createProjectionLayer() with a textureType of texture-array, but I don't know why it's saying kTextureArray - that string doesn't really mean anything special that I'm aware of. The WebXR Layers polyfill is supposed add support for WebXR Layers (including projection layers with texture-array) if the browser doesn't support it, so that shouldn't be an error, but also, looking at the code of the polyfill, I can't find that error message. So, I'm inclined to think that message is coming from the browser.

Another thing to check: Can you open https://webglreport.com/?v=2 (click over to the "WebGL 2" tab, if doesn't start you there) in the Pico browser and see if the OVR_multiview2 extension is listed there?

DanielKinsman commented 1 month ago

That log was from your game, but every browser enabled game in the jam also has the same problem.

OVR_multiview2 is indeed missing.

picobrowserwebgl2a picobrowserwebgl2b

dsnopek commented 1 month ago

OVR_multiview2 is indeed missing.

Ah, ok, thanks!

Unfortunately, Godot 4 can only do XR rendering via multiview, and it looks like the Pico browser doesn't support the WebGL extension we need to do multiview. (This would also explain why createProjectionLayer() doesn't support texture arrays, because that is best paired with multiview.)

At an XR team meeting shortly before Godot 4's release, I proposed adding a non-multiview rendering fallback, and it was rejected at the time. The feeling was that only old devices wouldn't support it, however, I feel like we've encountered a few modern devices recently that don't support it (Apple Vision Pro is another), that it may be worth re-discussing.

When I have the time, I'll see if I can experiment with implementing non-multiview rendering.

akien-mga commented 1 month ago

At an XR team meeting shortly before Godot 4's release, I proposed adding a non-multiview rendering fallback, and it was rejected at the time. The feeling was that only old devices wouldn't support it, however, I feel like we've encountered a few modern devices recently that don't support it (Apple Vision Pro is another), that it may be worth re-discussing.

Apparently this might also be the case for Mesa on Linux as per #94455.

styk-tv commented 2 weeks ago

@dsnopek thanks for pushing on WebXR. There is a great amount of attention on sustained usage, development effort and device decisions cascading up to a single piece of information: WebXr Browser Support: Yes/No

I would suggest (maybe) we add a multiview test to the standard set of tests. Even if its failing with a warning initially to remind everyone this is critical going forward.