Open svok opened 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).
@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)
Later I will try to extract some logging from OpenXR
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
@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. :-)
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?
I'm pretty sure that @BastiaanOlij has run Godot on the Pico 4 - he may have some advice beyond my basic questions above :-)
@svok Thanks!
Addressing WebXR first:
- All the code is made according to your manual.
- The WebXR Template contains polyfills in settings out of the box.
- 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.
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 :-)
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 🙃
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.
@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!
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!
@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?
That log was from your game, but every browser enabled game in the jam also has the same problem.
OVR_multiview2
is indeed missing.
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.
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.
@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.
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
WebXR
Minimal reproduction project
Either https://github.com/GodotVR/godot-xr-template or https://github.com/msub2/godot-webxr-template