fixed merge conflicts
This commit is contained in:
15
Cargo.toml
15
Cargo.toml
@@ -3,10 +3,12 @@ name = "bevy_oxr"
|
|||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
description = "Community crate for OpenXR in Bevy"
|
description = "Community crate for OpenXR in Bevy"
|
||||||
|
repository = "https://github.com/awtterpip/bevy_openxr"
|
||||||
license = "MIT/Apache-2.0"
|
license = "MIT/Apache-2.0"
|
||||||
|
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = ["openxr/mint", "linked"]
|
default = ["linked"]
|
||||||
linked = ["openxr/linked"]
|
linked = ["openxr/linked"]
|
||||||
|
|
||||||
[workspace]
|
[workspace]
|
||||||
@@ -22,24 +24,19 @@ wgpu-core = { version = "0.17.1", features = ["vulkan"] }
|
|||||||
wgpu-hal = "0.17.1"
|
wgpu-hal = "0.17.1"
|
||||||
|
|
||||||
[target.'cfg( target_family = "unix" )'.dependencies]
|
[target.'cfg( target_family = "unix" )'.dependencies]
|
||||||
openxr = "0.17.1"
|
openxr = { version = "0.17.1", features = ["mint"] }
|
||||||
|
|
||||||
[target.'cfg(not(target_family = "unix"))'.dependencies]
|
[target.'cfg(not(target_family = "unix"))'.dependencies]
|
||||||
openxr = { version = "0.17.1", features = ["static"] }
|
openxr = { version = "0.17.1", features = ["mint", "static"] }
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
bevy = "0.12"
|
bevy = "0.12"
|
||||||
color-eyre = "0.6.2"
|
color-eyre = "0.6.2"
|
||||||
# bevy_rapier3d = { git = "https://github.com/Schmarni-Dev/bevy_rapier" }
|
bevy_rapier3d = { git = "https://github.com/devil-ira/bevy_rapier", branch = "bevy-0.12" }
|
||||||
bevy_rapier3d = { git = "https://github.com/devil-ira/bevy_rapier", version = "0.22.0", branch = "bevy-0.12" }
|
|
||||||
|
|
||||||
[[example]]
|
[[example]]
|
||||||
name = "xr"
|
name = "xr"
|
||||||
path = "examples/xr.rs"
|
path = "examples/xr.rs"
|
||||||
|
|
||||||
[[example]]
|
|
||||||
name = "demo"
|
|
||||||
path = "examples/demo/src/main.rs"
|
|
||||||
|
|
||||||
[profile.release]
|
[profile.release]
|
||||||
debug = true
|
debug = true
|
||||||
|
|||||||
@@ -24,6 +24,11 @@ strip = "strip"
|
|||||||
[package.metadata.android.sdk]
|
[package.metadata.android.sdk]
|
||||||
target_sdk_version = 32
|
target_sdk_version = 32
|
||||||
|
|
||||||
|
|
||||||
|
[target.'cfg(not(target_os="android"))'.dependencies.bevy_oxr]
|
||||||
|
path = "../../"
|
||||||
|
default-features = true
|
||||||
|
|
||||||
# [package.metadata.android.application]
|
# [package.metadata.android.application]
|
||||||
# icon = "@mipmap/ic_launcher"
|
# icon = "@mipmap/ic_launcher"
|
||||||
# label = "Bevy Example"
|
# label = "Bevy Example"
|
||||||
|
|||||||
@@ -3,13 +3,18 @@ name = "demo"
|
|||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
crate-type = ["cdylib", "lib"]
|
crate-type = ["rlib", "cdylib"]
|
||||||
|
|
||||||
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
bevy = "0.12"
|
bevy = "0.12"
|
||||||
bevy_oxr = { path = "../../", default-features = false }
|
bevy_oxr = { path = "../../", default-features = false }
|
||||||
bevy_rapier3d = { git = "https://github.com/devil-ira/bevy_rapier", branch = "bevy-0.12" }
|
bevy_rapier3d = { git = "https://github.com/devil-ira/bevy_rapier", branch = "bevy-0.12" }
|
||||||
color-eyre = "0.6.2"
|
color-eyre = "0.6.2"
|
||||||
|
|
||||||
|
|
||||||
|
[target.'cfg(not(target_os="android"))'.dependencies.bevy_oxr]
|
||||||
|
path = "../../"
|
||||||
|
default-features = true
|
||||||
|
|||||||
24
examples/demo/Cargo_back.toml
Normal file
24
examples/demo/Cargo_back.toml
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
[package]
|
||||||
|
name = "demo"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2021"
|
||||||
|
|
||||||
|
|
||||||
|
[lib]
|
||||||
|
crate-type = ["cdylib", "lib"]
|
||||||
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
bevy = { git = "https://github.com/bevyengine/bevy.git" }
|
||||||
|
# bevy = "0.11.3"
|
||||||
|
# default-features is false because it for some reason complains when trying to statically link openxr
|
||||||
|
bevy_oxr = { path = "../../" }
|
||||||
|
# bevy_openxr = { git = "https://github.com/Schmarni-Dev/bevy_openxr", default-features = false, branch = "demo"}
|
||||||
|
bevy_rapier3d = { git = "https://github.com/devil-ira/bevy_rapier", version = "0.22.0", branch = "bevy-0.12" }
|
||||||
|
# bevy_rapier3d = { git = "https://github.com/Schmarni-Dev/bevy_rapier" }
|
||||||
|
color-eyre = "0.6.2"
|
||||||
|
|
||||||
|
[profile.release]
|
||||||
|
lto = "fat"
|
||||||
|
codegen-units = 1
|
||||||
|
panic = "abort"
|
||||||
739
examples/demo/quest2_stdout.txt
Normal file
739
examples/demo/quest2_stdout.txt
Normal file
@@ -0,0 +1,739 @@
|
|||||||
|
[1/3] Fetch precompiled artifacts
|
||||||
|
[1/3] Fetch precompiled artifacts [107ms]
|
||||||
|
[2/3] Build rust `demo`
|
||||||
|
[2/3] Build rust `demo` [442ms]
|
||||||
|
[3/3] Create apk
|
||||||
|
[3/3] Create apk [2761ms]
|
||||||
|
/home/schmarni/Code/adeptus_bevy_oxr/examples/demo/target/x/release/android/demo.apk: 1 file pushed, 0 skipped. 206.4 MB/s (17960272 bytes in 0.083s)
|
||||||
|
Success
|
||||||
|
Starting: Intent { act=android.intent.action.MAIN cmp=org.bevyengine.demo_openxr_android/android.app.NativeActivity }
|
||||||
|
--------- beginning of main
|
||||||
|
|
||||||
|
8986 8986 E _openxr_androi: Not starting debugger since process cannot load the jdwp agent.
|
||||||
|
8986 8986 D CompatibilityChangeReporter: Compat change id reported: 171979766; UID 10060; state: ENABLED
|
||||||
|
8986 8986 W System : ClassLoader referenced unknown path:
|
||||||
|
8986 8986 V GraphicsEnvironment: Lazy GPU memory allocation for 'org.bevyengine.demo_openxr_android': false
|
||||||
|
8986 8986 V GraphicsEnvironment: ANGLE Developer option for 'org.bevyengine.demo_openxr_android' set to: 'default'
|
||||||
|
8986 8986 V GraphicsEnvironment: ANGLE GameManagerService for org.bevyengine.demo_openxr_android: false
|
||||||
|
8986 8986 V GraphicsEnvironment: Neither updatable production driver nor prerelease driver is supported.
|
||||||
|
8986 8986 D CompatibilityChangeReporter: Compat change id reported: 175409949; UID 10060; state: DISABLED
|
||||||
|
8986 8986 D CompatibilityChangeReporter: Compat change id reported: 175409951; UID 10060; state: ENABLED
|
||||||
|
8986 8986 D CompatibilityChangeReporter: Compat change id reported: 175409950; UID 10060; state: DISABLED
|
||||||
|
8986 8986 D NetworkSecurityConfig: No Network Security Config specified, using platform default
|
||||||
|
8986 8986 D CompatibilityChangeReporter: Compat change id reported: 175409952; UID 10060; state: DISABLED
|
||||||
|
8986 8986 D NetworkSecurityConfig: No Network Security Config specified, using platform default
|
||||||
|
8986 8986 W Thread-2: type=1400 audit(0.0:253): avc: denied { read } for name="cpu.cfs_quota_us" dev="cgroup" ino=9 scontext=u:r:untrusted_app:s0:c60,c256,c512,c768 tcontext=u:object_r:cgroup:s0 tclass=file permissive=0 app=org.bevyengine.demo_openxr_android
|
||||||
|
8986 8986 W Thread-2: type=1400 audit(0.0:254): avc: denied { read } for name="cpu.cfs_period_us" dev="cgroup" ino=10 scontext=u:r:untrusted_app:s0:c60,c256,c512,c768 tcontext=u:object_r:cgroup:s0 tclass=file permissive=0 app=org.bevyengine.demo_openxr_android
|
||||||
|
8986 9016 V OpenXR-Loader: Verbose [GENERAL | xrInitializeLoaderKHR | OpenXR-Loader] : Entering loader trampoline
|
||||||
|
8986 9016 V OpenXR-Loader: Verbose [GENERAL | xrEnumerateInstanceExtensionProperties | OpenXR-Loader] : Entering loader trampoline
|
||||||
|
8986 9016 D ApplicationLoaders: Returning zygote-cached class loader: /system/framework/android.test.base.jar
|
||||||
|
8986 9016 D ApplicationLoaders: Returning zygote-cached class loader: /system/framework/android.hidl.manager-V1.0-java.jar
|
||||||
|
8986 9016 D ApplicationLoaders: Returning zygote-cached class loader: /system/framework/android.hidl.base-V1.0-java.jar
|
||||||
|
8986 9016 D vulkan : searching for layers in '/data/app/~~SIt7BvKZ9id9zPJkk8E79w==/org.bevyengine.demo_openxr_android-7MbCg-EKRIqT0VODkBZfLA==/lib/arm64'
|
||||||
|
8986 9016 D vulkan : searching for layers in '/data/app/~~SIt7BvKZ9id9zPJkk8E79w==/org.bevyengine.demo_openxr_android-7MbCg-EKRIqT0VODkBZfLA==/base.apk!/lib/arm64-v8a'
|
||||||
|
8986 9016 I DriverLoader: Calling into SetLegacyVrApiEntryPointOverride
|
||||||
|
8986 9016 I VrApi_DriverLoader: SetLegacyVrApiEntryPointOverride: calling sprintf
|
||||||
|
8986 9016 I VrApi_DriverLoader: SetLegacyVrApiEntryPointOverride: env buffer is '0x781d09ee60'
|
||||||
|
8986 9016 I VrApi_DriverLoader: SetLegacyVrApiEntryPointOverride: calling setenv
|
||||||
|
8986 9016 I DriverLoader: Creating Temp JNIEnv
|
||||||
|
8986 9016 I DriverLoader: Calling FindClass
|
||||||
|
8986 9016 I DriverLoader: Calling RegisterNativeVrApiLoaderMethods
|
||||||
|
8986 9016 I VrApi_DriverLoader: RegisterNativeVrApiLoaderMethods: calling RegisterNatives
|
||||||
|
8986 9016 I DriverLoader: Calling RegisterNativeXrLoaderMethods
|
||||||
|
8986 9016 I OpenXR_DriverLoader: RegisterNativeVrApiLoaderMethods: calling RegisterNatives
|
||||||
|
8986 9016 I DriverLoader: Exiting JNI_OnLoad
|
||||||
|
8986 9016 I OpenXR_ClientState: OpenXRClientState::create - from xrInitializeLoaderKHR
|
||||||
|
8986 9016 I XrRuntimeSharedClientState: SharedClientState::create called from 'OpenXRClientState::init'
|
||||||
|
8986 9016 I ipcLoader [RUNTIMEIPC]: RuntimeIPC: Loader: IPC Service API Loader Version: 52 Oct 7 2023 12:26:40
|
||||||
|
8986 9016 I ipcLoader [RUNTIMEIPC]: RuntimeIPC: Using android_get_exported_namespace: libripcclient.oculus.so
|
||||||
|
8986 9016 I ipcLoader [RUNTIMEIPC]: RuntimeIPC: android_get_exported_namespace SUCCESS: libripcclient.oculus.so
|
||||||
|
8986 9016 I DeadlockObserver [RUNTIMEIPC]: Init SUCCESS
|
||||||
|
8986 9025 I DeadlockObserver [RUNTIMEIPC]: MainLoop starting
|
||||||
|
8986 9026 D IPCDataChannelServer [RUNTIMEIPC]: Connected: 1, broker_package:broker_process:0
|
||||||
|
8986 9016 I BrokerRPC [RUNTIMEIPC]: InitRPCToServiceInternal: Success
|
||||||
|
8986 9016 I RuntimeIPCSystem [RUNTIMEIPC]: RuntimeIPCSystem: Init SUCCESS
|
||||||
|
8986 9016 I ClientProcessConnector [RUNTIMEIPC]: GetProcessConnection: com.oculus.systemdriver:com.oculus.vrruntimeservice
|
||||||
|
8986 9016 I RuntimeIPCClient [RUNTIMEIPC]: Event buffer size (client): 8192
|
||||||
|
8986 9016 I RuntimeIPCClient [RUNTIMEIPC]: TryToGetIPCResourcesFromServer: RPC_CONNECTOR_CONNECT_TO_SERVER SUCCESS: Client: org.bevyengine.demo_openxr_android:org.bevyengine.demo_openxr_android:8986, Server: com.oculus.systemdriver:com.oculus.vrruntimeservice (gkcache)
|
||||||
|
8986 9016 I RuntimeIPCClient [RUNTIMEIPC]: EnsureServerConnection: SUCCESS. Client: org.bevyengine.demo_openxr_android:org.bevyengine.demo_openxr_android:8986, Server: com.oculus.systemdriver:com.oculus.vrruntimeservice (gkcache)
|
||||||
|
8986 9016 I RuntimeIPCClient [RUNTIMEIPC]: ConnectToServer: SUCCESS: Client: org.bevyengine.demo_openxr_android:org.bevyengine.demo_openxr_android:8986, Server: com.oculus.systemdriver:com.oculus.vrruntimeservice (gkcache)
|
||||||
|
8986 9016 I RuntimeIPCClient [RUNTIMEIPC]: InitServerStateBuffer: SUCCESS. 0, Client: org.bevyengine.demo_openxr_android:org.bevyengine.demo_openxr_android:8986, Server: com.oculus.systemdriver:com.oculus.vrruntimeservice (gkcache)
|
||||||
|
8986 9016 I OpenXR_ClientState: Client state creation succeeded.
|
||||||
|
8986 9016 I OpenXR-Loader: Info [GENERAL | xrEnumerateInstanceExtensionProperties | OpenXR-Loader] : RuntimeInterface::LoadRuntime succeeded loading runtime using interface version 1 and OpenXR API version 1.0
|
||||||
|
8986 9016 I OpenXR : IsFirstParty 0
|
||||||
|
8986 9016 W _openxr_androi: Accessing hidden method Landroid/content/pm/ApplicationInfo;->isPrivilegedApp()Z (blocked,test-api, reflection, denied)
|
||||||
|
8986 9016 W _openxr_androi: If this is a platform test consider enabling VMRuntime.ALLOW_TEST_API_ACCESS change id for this package.
|
||||||
|
8986 9016 I OpenXR : IsPrivileged 0
|
||||||
|
8986 9016 I OpenXR : Is_X_PartnerGateKeeper
|
||||||
|
8986 9016 I OpenXR : PGK Status: exp = 0, hor = false, dc = false
|
||||||
|
8986 9016 I OpenXR : Extension status: P
|
||||||
|
8986 9016 I OpenXR : IsFirstParty 0
|
||||||
|
8986 9016 I DeviceProperties: ovrDeviceProperties::Initialize
|
||||||
|
8986 9016 I DeviceProperties: Device Region: 'US'
|
||||||
|
8986 9016 I DeviceProperties: GPU Type: 'ADRENO_650'
|
||||||
|
8986 9016 I DeviceProperties: Num Refresh Rates Supported 61
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (0): 120.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (1): 119.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (2): 118.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (3): 117.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (4): 116.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (5): 115.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (6): 114.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (7): 113.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (8): 112.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (9): 111.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (10): 110.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (11): 109.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (12): 108.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (13): 107.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (14): 106.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (15): 105.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (16): 104.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (17): 103.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (18): 102.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (19): 101.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (20): 100.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (21): 99.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (22): 98.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (23): 97.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (24): 96.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (25): 95.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (26): 94.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (27): 93.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (28): 92.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (29): 91.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (30): 90.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (31): 89.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (32): 88.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (33): 87.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (34): 86.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (35): 85.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (36): 84.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (37): 83.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (38): 82.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (39): 81.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (40): 80.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (41): 79.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (42): 78.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (43): 77.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (44): 76.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (45): 75.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (46): 74.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (47): 73.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (48): 72.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (49): 71.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (50): 70.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (51): 69.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (52): 68.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (53): 67.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (54): 66.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (55): 65.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (56): 64.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (57): 63.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (58): 62.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (59): 61.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (60): 60.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: DisplayParms.ScanoutDirection = 1
|
||||||
|
8986 9016 I DeviceProperties: DisplayParms.ShutterType = 1
|
||||||
|
8986 8986 W Thread-2: type=1400 audit(0.0:255): avc: denied { read } for name="u:object_r:vendor_board_init_prop:s0" dev="tmpfs" ino=12449 scontext=u:r:untrusted_app:s0:c60,c256,c512,c768 tcontext=u:object_r:vendor_board_init_prop:s0 tclass=file permissive=0 app=org.bevyengine.demo_openxr_android
|
||||||
|
8986 9016 W libc : Access denied finding property "ro.vendor.product.model_extended"
|
||||||
|
8986 9016 I DeviceProperties: getDisplayDimensions returned: 3664, 1920
|
||||||
|
8986 9016 I DeviceProperties: ovrDeviceProperties: OVR_DEVICE_CAPABILITY_POSITIONAL_TRACKING_BIT
|
||||||
|
8986 9016 I DeviceProperties: ovrDeviceProperties: OVR_DEVICE_CAPABILITY_PASSTHROUGH_CAMERA_BIT
|
||||||
|
8986 9016 I DeviceProperties: ovrDeviceProperties: OVR_DEVICE_CAPABILITY_DYNAMIC_DISPLAY_REFRESH_RATE_BIT
|
||||||
|
8986 9016 I DeviceProperties: ovrDeviceProperties: OVR_DEVICE_CAPABILITY_MEMORY_EXPORT_BIT
|
||||||
|
8986 9016 I DeviceProperties: ovrDeviceProperties: OVR_DEVICE_CAPABILITY_FIXED_FOVEATED_RENDERING_BIT
|
||||||
|
8986 9016 I DeviceProperties: ovrDeviceProperties: OVR_DEVICE_CAPABILITY_SUBSAMPLED_LAYOUT_BIT
|
||||||
|
8986 9016 I DeviceProperties: ovrDeviceProperties: OVR_DEVICE_CAPABILITY_KEYBOARD_TRACKING_BIT
|
||||||
|
8986 9016 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FB_body_tracking` due to: missing uses-feature string `com.oculus.software.body_tracking` from AndroidManifest
|
||||||
|
8986 9016 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FB_keyboard_tracking` due to: missing uses-feature string `oculus.software.trackedkeyboard` from AndroidManifest
|
||||||
|
8986 9016 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FBX1_spatial_entity` due to: Tier=40 extState=P deviceIsExpEnabled=false expManifestSet=false isFirstPartyApp=false isSystemApp=false
|
||||||
|
8986 9016 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FBX2_spatial_entity` due to: Tier=40 extState=P deviceIsExpEnabled=false expManifestSet=false isFirstPartyApp=false isSystemApp=false
|
||||||
|
8986 9016 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FB_spatial_entity` due to: missing uses-permission string `com.oculus.permission.USE_ANCHOR_API` from AndroidManifest
|
||||||
|
8986 9016 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FB_triangle_mesh` due to: missing uses-feature string `com.oculus.feature.PASSTHROUGH` from AndroidManifest
|
||||||
|
8986 9016 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FB_passthrough` due to: missing uses-feature string `com.oculus.feature.PASSTHROUGH` from AndroidManifest
|
||||||
|
8986 9016 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_METAX1_passthrough_color_lut` due to: Tier=40 extState=P deviceIsExpEnabled=false expManifestSet=false isFirstPartyApp=false isSystemApp=false
|
||||||
|
8986 9016 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_META_passthrough_color_lut` due to: missing uses-feature string `com.oculus.feature.PASSTHROUGH` from AndroidManifest
|
||||||
|
8986 9016 I OpenXR : PassesGKKillswitch 1
|
||||||
|
8986 9016 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FB_render_model` due to: missing uses-feature string `com.oculus.feature.RENDER_MODEL` from AndroidManifest
|
||||||
|
8986 9016 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FBX1_spatial_entity_query` due to: Tier=40 extState=P deviceIsExpEnabled=false expManifestSet=false isFirstPartyApp=false isSystemApp=false
|
||||||
|
8986 9016 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FBX2_spatial_entity_query` due to: Tier=40 extState=P deviceIsExpEnabled=false expManifestSet=false isFirstPartyApp=false isSystemApp=false
|
||||||
|
8986 9016 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FB_spatial_entity_query` due to: missing uses-permission string `com.oculus.permission.USE_ANCHOR_API` from AndroidManifest
|
||||||
|
8986 9016 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FBX1_touch_controller_extras` due to: Tier=40 extState=P deviceIsExpEnabled=false expManifestSet=false isFirstPartyApp=false isSystemApp=false
|
||||||
|
8986 9016 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FBX1_spatial_entity_storage` due to: Tier=40 extState=P deviceIsExpEnabled=false expManifestSet=false isFirstPartyApp=false isSystemApp=false
|
||||||
|
8986 9016 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FBX2_spatial_entity_storage` due to: Tier=40 extState=P deviceIsExpEnabled=false expManifestSet=false isFirstPartyApp=false isSystemApp=false
|
||||||
|
8986 9016 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FB_spatial_entity_storage` due to: missing uses-permission string `com.oculus.permission.USE_ANCHOR_API` from AndroidManifest
|
||||||
|
8986 9016 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FB_spatial_entity_storage_batch` due to: missing uses-permission string `com.oculus.permission.USE_ANCHOR_API` from AndroidManifest
|
||||||
|
8986 9016 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FB_spatial_entity_sharing` due to: missing uses-permission string `com.oculus.permission.IMPORT_EXPORT_IOT_MAP_DATA` from AndroidManifest
|
||||||
|
8986 9016 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FB_spatial_entity_container` due to: missing uses-permission string `com.oculus.permission.USE_ANCHOR_API` from AndroidManifest
|
||||||
|
8986 9016 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FB_scene` due to: missing uses-permission string `com.oculus.permission.USE_ANCHOR_API` from AndroidManifest
|
||||||
|
8986 9016 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FB_scene_capture` due to: missing uses-permission string `com.oculus.permission.USE_ANCHOR_API` from AndroidManifest
|
||||||
|
8986 9016 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_META_spatial_entity_mesh` due to: missing uses-permission string `com.oculus.permission.USE_SCENE` from AndroidManifest
|
||||||
|
8986 9016 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FB_face_tracking` due to: missing uses-feature string `oculus.software.face_tracking` from AndroidManifest
|
||||||
|
8986 9016 I OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension 'XR_META_local_dimming' as device requirements requirements (16) are not met.
|
||||||
|
8986 9016 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_META_foveation_eye_tracked` due to: missing uses-feature string `oculus.software.eye_tracking` from AndroidManifest
|
||||||
|
8986 9016 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FB_eye_tracking_social` due to: missing uses-feature string `oculus.software.eye_tracking` from AndroidManifest
|
||||||
|
8986 9016 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FB_passthrough_keyboard_hands` due to: missing uses-feature string `com.oculus.feature.PASSTHROUGH` from AndroidManifest
|
||||||
|
8986 9016 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FBX1_composition_layer_settings` due to: Tier=40 extState=P deviceIsExpEnabled=false expManifestSet=false isFirstPartyApp=false isSystemApp=false
|
||||||
|
8986 9016 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FBX1_composition_layer_depth_test` due to: Tier=40 extState=P deviceIsExpEnabled=false expManifestSet=false isFirstPartyApp=false isSystemApp=false
|
||||||
|
8986 9016 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_EXT_eye_gaze_interaction` due to: missing uses-permission string `com.oculus.permission.EYE_TRACKING` from AndroidManifest
|
||||||
|
8986 9016 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_EXT_hand_joints_motion_range` due to: Tier=40 extState=P deviceIsExpEnabled=false expManifestSet=false isFirstPartyApp=false isSystemApp=false
|
||||||
|
8986 9016 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_EXTX1_hand_tracking_data_source` due to: Tier=40 extState=P deviceIsExpEnabled=false expManifestSet=false isFirstPartyApp=false isSystemApp=false
|
||||||
|
8986 9016 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_METAX1_performance_metrics` due to: Tier=40 extState=P deviceIsExpEnabled=false expManifestSet=false isFirstPartyApp=false isSystemApp=false
|
||||||
|
8986 9016 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_METAX1_virtual_keyboard` due to: Tier=40 extState=P deviceIsExpEnabled=false expManifestSet=false isFirstPartyApp=false isSystemApp=false
|
||||||
|
8986 9016 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_METAX2_virtual_keyboard` due to: Tier=40 extState=P deviceIsExpEnabled=false expManifestSet=false isFirstPartyApp=false isSystemApp=false
|
||||||
|
8986 9016 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_METAX2_detached_controllers` due to: Tier=40 extState=P deviceIsExpEnabled=false expManifestSet=false isFirstPartyApp=false isSystemApp=false
|
||||||
|
8986 9016 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_EXTX1_event_channel` due to: Tier=40 extState=P deviceIsExpEnabled=false expManifestSet=false isFirstPartyApp=false isSystemApp=false
|
||||||
|
8986 9016 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_METAX1_environment_depth` due to: Tier=40 extState=P deviceIsExpEnabled=false expManifestSet=false isFirstPartyApp=false isSystemApp=false
|
||||||
|
8986 9016 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_EXT_active_action_set_priority` due to: Tier=40 extState=P deviceIsExpEnabled=false expManifestSet=false isFirstPartyApp=false isSystemApp=false
|
||||||
|
8986 9016 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_EXT_palm_pose` due to: Tier=40 extState=P deviceIsExpEnabled=false expManifestSet=false isFirstPartyApp=false isSystemApp=false
|
||||||
|
8986 9016 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_METAX1_simultaneous_hands_controllers_management` due to: Tier=40 extState=P deviceIsExpEnabled=false expManifestSet=false isFirstPartyApp=false isSystemApp=false
|
||||||
|
8986 9016 V OpenXR-Loader: Verbose [GENERAL | xrEnumerateInstanceExtensionProperties | OpenXR-Loader] : Completed loader trampoline
|
||||||
|
8986 9016 V OpenXR-Loader: Verbose [GENERAL | xrEnumerateInstanceExtensionProperties | OpenXR-Loader] : Entering loader trampoline
|
||||||
|
8986 9016 V OpenXR-Loader: Verbose [GENERAL | xrEnumerateInstanceExtensionProperties | OpenXR-Loader] : Completed loader trampoline
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu available xr exts: ExtensionSet {
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu almalence_digital_lens_control: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu epic_view_configuration_fov: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu ext_performance_settings: true,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu ext_thermal_query: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu ext_debug_utils: true,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu ext_eye_gaze_interaction: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu ext_view_configuration_depth_range: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu ext_conformance_automation: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu ext_hand_tracking: true,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu ext_dpad_binding: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu ext_hand_joints_motion_range: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu ext_samsung_odyssey_controller: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu ext_hp_mixed_reality_controller: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu ext_palm_pose: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu ext_uuid: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu extx_overlay: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_composition_layer_image_layout: true,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_composition_layer_alpha_blend: true,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_android_surface_swapchain_create: true,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_swapchain_update_state: true,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_composition_layer_secure_content: true,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_display_refresh_rate: true,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_color_space: true,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_hand_tracking_mesh: true,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_hand_tracking_aim: true,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_hand_tracking_capsules: true,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_spatial_entity: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_foveation: true,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_foveation_configuration: true,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_keyboard_tracking: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_triangle_mesh: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_passthrough: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_render_model: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_spatial_entity_query: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_spatial_entity_storage: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_foveation_vulkan: true,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_swapchain_update_state_android_surface: true,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_swapchain_update_state_opengl_es: true,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_swapchain_update_state_vulkan: true,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_space_warp: true,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_scene: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_spatial_entity_container: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_passthrough_keyboard_hands: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_composition_layer_settings: true,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu htc_vive_cosmos_controller_interaction: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu htc_facial_tracking: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu htc_vive_focus3_controller_interaction: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu htc_hand_interaction: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu htc_vive_wrist_tracker_interaction: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu htcx_vive_tracker_interaction: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu huawei_controller_interaction: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu khr_android_thread_settings: true,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu khr_android_surface_swapchain: true,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu khr_composition_layer_cube: true,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu khr_android_create_instance: true,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu khr_composition_layer_depth: true,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu khr_vulkan_swapchain_format_list: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu khr_composition_layer_cylinder: true,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu khr_composition_layer_equirect: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu khr_opengl_enable: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu khr_opengl_es_enable: true,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu khr_vulkan_enable: true,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu khr_visibility_mask: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu khr_composition_layer_color_scale_bias: true,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu khr_convert_timespec_time: true,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu khr_loader_init: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu khr_loader_init_android: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu khr_vulkan_enable2: true,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu khr_composition_layer_equirect2: true,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu khr_binding_modification: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu khr_swapchain_usage_input_attachment_bit: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu meta_vulkan_swapchain_create_info: true,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu meta_performance_metrics: true,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu ml_ml2_controller_interaction: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu mnd_headless: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu mnd_swapchain_usage_input_attachment_bit: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu mndx_egl_enable: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu msft_unbounded_reference_space: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu msft_spatial_anchor: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu msft_spatial_graph_bridge: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu msft_hand_interaction: true,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu msft_hand_tracking_mesh: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu msft_secondary_view_configuration: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu msft_first_person_observer: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu msft_controller_model: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu msft_composition_layer_reprojection: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu msft_spatial_anchor_persistence: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu oculus_android_session_state_enable: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu oculus_audio_device_guid: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu ultraleap_hand_tracking_forearm: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu valve_analog_threshold: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu varjo_quad_views: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu varjo_foveated_rendering: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu varjo_composition_layer_depth_test: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu varjo_environment_depth_estimation: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu varjo_marker_tracking: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu varjo_view_offset: false,
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu other: [
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu "XR_OCULUS_common_reference_spaces\0",
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu "XR_FB_common_events\0",
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu "XR_META_passthrough_preferences\0",
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu "XR_FB_touch_controller_proximity\0",
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu "XR_FB_touch_controller_pro\0",
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu "XR_META_touch_controller_plus\0",
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu "XR_FB_haptic_amplitude_envelope\0",
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu "XR_FB_haptic_pcm\0",
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu "XR_FB_spatial_entity_user\0",
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu "XR_META_feature_fidelity\0",
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu "XR_FB_composition_layer_depth_test\0",
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu "XR_META_virtual_keyboard\0",
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu "XR_META_headset_id\0",
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu "XR_META_recommended_layer_resolution\0",
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu "XR_META_automatic_layer_filter\0",
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu ],
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu}
|
||||||
|
8986 9016 V OpenXR-Loader: Verbose [GENERAL | xrEnumerateApiLayerProperties | OpenXR-Loader] : Entering loader trampoline
|
||||||
|
8986 9016 V OpenXR-Loader: Verbose [GENERAL | FindLayerLibraries | OpenXR-Loader] : searching for layers in /data/app/~~SIt7BvKZ9id9zPJkk8E79w==/org.bevyengine.demo_openxr_android-7MbCg-EKRIqT0VODkBZfLA==/lib/arm64
|
||||||
|
8986 9016 V OpenXR-Loader: Verbose [GENERAL | xrEnumerateApiLayerProperties | OpenXR-Loader] : Entering loader trampoline
|
||||||
|
8986 9016 V OpenXR-Loader: Verbose [GENERAL | FindLayerLibraries | OpenXR-Loader] : searching for layers in /data/app/~~SIt7BvKZ9id9zPJkk8E79w==/org.bevyengine.demo_openxr_android-7MbCg-EKRIqT0VODkBZfLA==/lib/arm64
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu available xr layers: []
|
||||||
|
8986 9016 V OpenXR-Loader: Verbose [GENERAL | xrCreateInstance | OpenXR-Loader] : Entering loader trampoline
|
||||||
|
8986 9016 V OpenXR-Loader: Verbose [GENERAL | FindLayerLibraries | OpenXR-Loader] : searching for layers in /data/app/~~SIt7BvKZ9id9zPJkk8E79w==/org.bevyengine.demo_openxr_android-7MbCg-EKRIqT0VODkBZfLA==/lib/arm64
|
||||||
|
8986 9016 V OpenXR-Loader: Verbose [GENERAL | xrCreateInstance | OpenXR-Loader] : Entering LoaderInstance::CreateInstance
|
||||||
|
8986 9016 V OpenXR-Loader: Verbose [GENERAL | xrCreateInstance | OpenXR-Loader] : Entering loader terminator
|
||||||
|
8986 9016 I OpenXR : ----------- xrCreateInstance [start] ----------
|
||||||
|
8986 9016 I OpenXR : xrCreateInstance: Extension XR_KHR_android_create_instance enabled.
|
||||||
|
8986 9016 I OpenXR : xrCreateInstance: Extension XR_KHR_vulkan_enable2 enabled.
|
||||||
|
8986 9016 I VersionGater: App OpenXR version is 1.0.25
|
||||||
|
8986 9016 I VersionGater: Version gate state: 1111 1000 0
|
||||||
|
8986 9016 W VrRuntimeClient: InitDeviceConfig called before service connection! GKs checked before service connection will return defaults!
|
||||||
|
8986 9016 I TREX : Initializing TREX for client c56f4dcb3ab1079f...
|
||||||
|
8986 9016 I TREX : Initializing system...
|
||||||
|
8986 9016 I XrRuntimeSystem_Client: BodyPoweredHands checkSysPropForBodyAPIOverride 0
|
||||||
|
8986 9016 I TREX : Created plugin package context for com.oculus.systemdriver
|
||||||
|
8986 9016 I RuntimeIPCClient [RUNTIMEIPC]: Event buffer size (client): 8192
|
||||||
|
8986 9016 I RuntimeIPCClient [RUNTIMEIPC]: TryToGetIPCResourcesFromServer: RPC_CONNECTOR_CONNECT_TO_SERVER SUCCESS: Client: org.bevyengine.demo_openxr_android:org.bevyengine.demo_openxr_android:8986, Server: com.oculus.systemdriver:com.oculus.vrruntimeservice (HapticsServer)
|
||||||
|
8986 9016 I RuntimeIPCClient [RUNTIMEIPC]: EnsureServerConnection: SUCCESS. Client: org.bevyengine.demo_openxr_android:org.bevyengine.demo_openxr_android:8986, Server: com.oculus.systemdriver:com.oculus.vrruntimeservice (HapticsServer)
|
||||||
|
8986 9016 I RuntimeIPCClient [RUNTIMEIPC]: ConnectToServer: SUCCESS: Client: org.bevyengine.demo_openxr_android:org.bevyengine.demo_openxr_android:8986, Server: com.oculus.systemdriver:com.oculus.vrruntimeservice (HapticsServer)
|
||||||
|
8986 9016 I TREX : Loading plugin com.oculus.wearableinputservice:libtrex_wristband_client_plugin.so
|
||||||
|
8986 9016 I TREX : package 'com.oculus.wearableinputservice' not found, skipping
|
||||||
|
8986 9016 I TREX : Plugin 'com.oculus.wearableinputservice:libtrex_wristband_client_plugin.so' not loaded.
|
||||||
|
8986 9016 I PerformanceManagerInterface_Impl: perfmgr: Skipping initial server state initialization, will initialize next time around
|
||||||
|
8986 9016 E TREX : Interface version 3 was not found. Check debug build for more information.
|
||||||
|
8986 9016 I DeviceProperties: ovrDeviceProperties::Initialize
|
||||||
|
8986 9016 I DeviceProperties: Device Region: 'US'
|
||||||
|
8986 9016 I DeviceProperties: GPU Type: 'ADRENO_650'
|
||||||
|
8986 9016 I DeviceProperties: Num Refresh Rates Supported 61
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (0): 120.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (1): 119.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (2): 118.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (3): 117.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (4): 116.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (5): 115.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (6): 114.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (7): 113.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (8): 112.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (9): 111.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (10): 110.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (11): 109.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (12): 108.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (13): 107.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (14): 106.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (15): 105.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (16): 104.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (17): 103.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (18): 102.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (19): 101.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (20): 100.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (21): 99.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (22): 98.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (23): 97.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (24): 96.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (25): 95.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (26): 94.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (27): 93.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (28): 92.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (29): 91.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (30): 90.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (31): 89.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (32): 88.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (33): 87.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (34): 86.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (35): 85.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (36): 84.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (37): 83.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (38): 82.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (39): 81.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (40): 80.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (41): 79.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (42): 78.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (43): 77.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (44): 76.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (45): 75.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (46): 74.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (47): 73.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (48): 72.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (49): 71.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (50): 70.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (51): 69.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (52): 68.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (53): 67.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (54): 66.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (55): 65.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (56): 64.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (57): 63.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (58): 62.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (59): 61.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: Refresh Rate (60): 60.000000Hz
|
||||||
|
8986 9016 I DeviceProperties: DisplayParms.ScanoutDirection = 1
|
||||||
|
8986 9016 I DeviceProperties: DisplayParms.ShutterType = 1
|
||||||
|
8986 8986 W Thread-2: type=1400 audit(0.0:256): avc: denied { read } for name="u:object_r:vendor_board_init_prop:s0" dev="tmpfs" ino=12449 scontext=u:r:untrusted_app:s0:c60,c256,c512,c768 tcontext=u:object_r:vendor_board_init_prop:s0 tclass=file permissive=0 app=org.bevyengine.demo_openxr_android
|
||||||
|
8986 9016 W libc : Access denied finding property "ro.vendor.product.model_extended"
|
||||||
|
8986 9016 I DeviceProperties: getDisplayDimensions returned: 3664, 1920
|
||||||
|
8986 9016 I DeviceProperties: ovrDeviceProperties: OVR_DEVICE_CAPABILITY_POSITIONAL_TRACKING_BIT
|
||||||
|
8986 9016 I DeviceProperties: ovrDeviceProperties: OVR_DEVICE_CAPABILITY_PASSTHROUGH_CAMERA_BIT
|
||||||
|
8986 9016 I DeviceProperties: ovrDeviceProperties: OVR_DEVICE_CAPABILITY_DYNAMIC_DISPLAY_REFRESH_RATE_BIT
|
||||||
|
8986 9016 I DeviceProperties: ovrDeviceProperties: OVR_DEVICE_CAPABILITY_MEMORY_EXPORT_BIT
|
||||||
|
8986 9016 I DeviceProperties: ovrDeviceProperties: OVR_DEVICE_CAPABILITY_FIXED_FOVEATED_RENDERING_BIT
|
||||||
|
8986 9016 I DeviceProperties: ovrDeviceProperties: OVR_DEVICE_CAPABILITY_SUBSAMPLED_LAYOUT_BIT
|
||||||
|
8986 9016 I DeviceProperties: ovrDeviceProperties: OVR_DEVICE_CAPABILITY_KEYBOARD_TRACKING_BIT
|
||||||
|
8986 9016 I VrRuntimeClient: DevicesSupported : 3 devices, quest|quest2|quest3
|
||||||
|
8986 9016 I Distortion: Initializing Mesh Decenter Correction
|
||||||
|
8986 9016 I Distortion: SetLensPositions - iad=0.06485, left offset=0.000465658,-0.00151258, right offset=-0.000983495,-0.00165948
|
||||||
|
8986 9016 I Distortion: Initializing Mesh Decenter Correction
|
||||||
|
8986 9016 I Distortion: SetLensPositions - iad=0.06485, left offset=0.000465658,-0.00151258, right offset=-0.000983495,-0.00165948
|
||||||
|
8986 9016 I OpenXR : ----------- xrCreateInstance [end] ----------
|
||||||
|
8986 9016 V OpenXR-Loader: Verbose [GENERAL | xrCreateInstance | OpenXR-Loader] : Completed loader terminator
|
||||||
|
8986 9016 I OpenXR-Loader: Info [GENERAL | xrCreateInstance | OpenXR-Loader] : LoaderInstance::CreateInstance succeeded with 0 layers enabled and runtime interface - created instance = 0x0100000000000001
|
||||||
|
8986 9016 V OpenXR-Loader: Verbose [GENERAL | xrCreateInstance | OpenXR-Loader] : Completed loader trampoline
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu created instance
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu created system
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu loaded OpenXR runtime: Oculus 57.295.0 Oculus Quest2
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu creating vulkan instance with these extensions: [
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu "VK_KHR_surface",
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu "VK_KHR_android_surface",
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu "VK_EXT_swapchain_colorspace",
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu "VK_KHR_get_physical_device_properties2",
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu]
|
||||||
|
8986 9016 I AdrenoVK-0: ===== BEGIN DUMP OF OVERRIDDEN SETTINGS =====
|
||||||
|
8986 9016 I AdrenoVK-0: ===== END DUMP OF OVERRIDDEN SETTINGS =====
|
||||||
|
8986 9016 I AdrenoVK-0: QUALCOMM build : fa5d856e9e, I160a5475da
|
||||||
|
8986 9016 I AdrenoVK-0: Build Date : 07/24/23
|
||||||
|
8986 9016 I AdrenoVK-0: Shader Compiler Version : E031.42.07.00
|
||||||
|
8986 9016 I AdrenoVK-0: Local Branch :
|
||||||
|
8986 9016 I AdrenoVK-0: Remote Branch :
|
||||||
|
8986 9016 I AdrenoVK-0: Remote Branch :
|
||||||
|
8986 9016 I AdrenoVK-0: Reconstruct Branch :
|
||||||
|
8986 9016 I AdrenoVK-0: Build Config : S P 10.0.7 AArch64
|
||||||
|
8986 9016 I AdrenoVK-0: Driver Path : /vendor/lib64/hw/vulkan.adreno.so
|
||||||
|
8986 9016 I AdrenoVK-0: Driver Version : 0728.0
|
||||||
|
8986 9016 I AdrenoVK-0: PFP : 0x016dd112
|
||||||
|
8986 9016 I AdrenoVK-0: ME : 0x00000000
|
||||||
|
8986 9016 I AdrenoVK-0: Application Name : Ambient
|
||||||
|
8986 9016 I AdrenoVK-0: Application Version : 0x00000001
|
||||||
|
8986 9016 I AdrenoVK-0: Engine Name : Ambient
|
||||||
|
8986 9016 I AdrenoVK-0: Engine Version : 0x00000001
|
||||||
|
8986 9016 I AdrenoVK-0: Api Version : 0x00401000
|
||||||
|
8986 9016 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu created vulkan instance
|
||||||
|
8986 9016 I VulkanLoader: ovrVulkanLoader::Load
|
||||||
|
8986 9016 W VulkanLoader: VulkanLoader::LoadInstanceFunctions: Failed to load vkCreateDebugReportCallbackEXT, likely vkInstance created without xrGetVulkanInstanceExtensionsKHR/vrapi_GetInstanceExtensionsVulkan
|
||||||
|
8986 9016 W VulkanLoader: VulkanLoader::LoadInstanceFunctions: Failed to load vkDestroyDebugReportCallbackEXT, likely vkInstance created without xrGetVulkanInstanceExtensionsKHR/vrapi_GetInstanceExtensionsVulkan
|
||||||
|
8986 9016 W VulkanLoader: ovrVulkanLoader::LoadDeviceFunctions: device invalid
|
||||||
|
8986 9016 W VulkanLoader: ovrVulkanLoader::LoadExtensionList: physicalDevice invalid
|
||||||
|
8986 9016 I Vulkan_Utils: --------------------------------
|
||||||
|
8986 9016 I Vulkan_Utils: Device Name : Adreno (TM) 650
|
||||||
|
8986 9016 I Vulkan_Utils: Device Type : integrated GPU
|
||||||
|
8986 9016 I Vulkan_Utils: Vendor ID : 0x5143
|
||||||
|
8986 9016 I Vulkan_Utils: Device ID : 0x6050002
|
||||||
|
8986 9016 I Vulkan_Utils: Driver Version : 512.728.0
|
||||||
|
8986 9016 I Vulkan_Utils: API Version : 1.1.128
|
||||||
|
8986 9016 I Vulkan_Utils: Queue Families : 0 = graphics compute (3 queues, 3 priorities)
|
||||||
|
8986 9016 I Vulkan_Utils: Work Queue Family : 0
|
||||||
|
8986 9016 I Vulkan_Utils: Device Extensions : VK_KHR_swapchain (required, enabled)
|
||||||
|
8986 9016 I Vulkan_Utils: VK_KHR_external_memory (required, enabled)
|
||||||
|
8986 9016 I Vulkan_Utils: VK_KHR_get_memory_requirements2 (required, enabled)
|
||||||
|
8986 9016 I Vulkan_Utils: Device Extensions VK_EXT_fragment_density_map (optional, enabled)
|
||||||
|
8986 9016 I Vulkan_Utils: VK_EXT_fragment_density_map2 (optional, enabled)
|
||||||
|
8986 9016 I Vulkan_Utils: VK_KHR_maintenance1 (optional, enabled)
|
||||||
|
8986 9016 I Vulkan_Utils: VK_KHR_bind_memory2 (optional, enabled)
|
||||||
|
8986 9016 I Vulkan_Utils: VK_KHR_sampler_ycbcr_conversion (optional, enabled)
|
||||||
|
8986 9016 I Vulkan_Utils: VK_EXT_queue_family_foreign (optional, enabled)
|
||||||
|
8986 9016 I Vulkan_Utils: VK_KHR_dedicated_allocation (optional, enabled)
|
||||||
|
8986 9016 I Vulkan_Utils: VK_KHR_external_memory_fd (optional, enabled)
|
||||||
|
8986 9016 I Vulkan_Utils: VK_ANDROID_external_memory_android_hardware_buffer (optional, enabled)
|
||||||
|
8986 9016 I OpenXR : ------------ xrCreateSession [start] -----------
|
||||||
|
8986 9016 I RuntimeIPCClient [RUNTIMEIPC]: Event buffer size (client): 8192
|
||||||
|
8986 9016 I RuntimeIPCClient [RUNTIMEIPC]: TryToGetIPCResourcesFromServer: RPC_CONNECTOR_CONNECT_TO_SERVER SUCCESS: Client: org.bevyengine.demo_openxr_android:org.bevyengine.demo_openxr_android:8986, Server: com.oculus.systemdriver:com.oculus.vrruntimeservice (RuntimeServiceServer)
|
||||||
|
8986 9016 I VrRuntimeClient: g_RuntimeServiceSDKClient.Connected: com.oculus.systemdriver:com.oculus.vrruntimeservice
|
||||||
|
8986 9016 I VrRuntimeClient: RuntimeIPC: ServiceConnected: SharedMemoryDebug: publicReadOnly SharedMemorySize=8744 () sizeof(sharedMemoryPublicReadOnly)=8768
|
||||||
|
8986 9016 I VrRuntimeClient: RuntimeIPC: ServiceConnected: SharedMemoryDebug: privateReadWrite SharedMemorySize=40352 () sizeof(privateSharedMemorySize)=8
|
||||||
|
8986 9016 I VrRuntimeClient: nativeRuntimeServiceConnected: SharedMemoryDebug: publicReadOnlyFd=95, privateReadWriteFd=96 ()
|
||||||
|
8986 9016 I RuntimeIPCClient [RUNTIMEIPC]: EnsureServerConnection: SUCCESS. Client: org.bevyengine.demo_openxr_android:org.bevyengine.demo_openxr_android:8986, Server: com.oculus.systemdriver:com.oculus.vrruntimeservice (RuntimeServiceServer)
|
||||||
|
8986 9016 I RuntimeIPCClient [RUNTIMEIPC]: ConnectToServer: SUCCESS: Client: org.bevyengine.demo_openxr_android:org.bevyengine.demo_openxr_android:8986, Server: com.oculus.systemdriver:com.oculus.vrruntimeservice (RuntimeServiceServer)
|
||||||
|
8986 9016 I VrRuntimeClient: g_RuntimeServiceSDKClient.InitClient SUCCESS. Version: 5.0, Custom: 1.0
|
||||||
|
8986 9016 I RuntimeIPCClientMgr [RUNTIMEIPC]: GetClientOptions
|
||||||
|
8986 9016 I OpenXR : xrCreateSession: Connected to VrRuntimeService after 0.125536s
|
||||||
|
8986 9016 I AdrenoGLES-0: QUALCOMM build : fa5d856e9e, I160a5475da
|
||||||
|
8986 9016 I AdrenoGLES-0: Build Date : 07/24/23
|
||||||
|
8986 9016 I AdrenoGLES-0: OpenGL ES Shader Compiler Version: E031.42.07.00
|
||||||
|
8986 9016 I AdrenoGLES-0: Local Branch :
|
||||||
|
8986 9016 I AdrenoGLES-0: Remote Branch :
|
||||||
|
8986 9016 I AdrenoGLES-0: Remote Branch :
|
||||||
|
8986 9016 I AdrenoGLES-0: Reconstruct Branch :
|
||||||
|
8986 9016 I AdrenoGLES-0: Build Config : S P 10.0.7 AArch64
|
||||||
|
8986 9016 I AdrenoGLES-0: Driver Path : /vendor/lib64/egl/libGLESv2_adreno.so
|
||||||
|
8986 9016 I AdrenoGLES-0: Driver Version : 0728.0
|
||||||
|
8986 9016 I AdrenoGLES-0: Process Name : org.bevyengine.demo_openxr_android
|
||||||
|
8986 9016 I AdrenoGLES-0: PFP: 0x016dd112, ME: 0x00000000
|
||||||
|
8986 9016 I VrRuntimeClient: SetPhaseSyncMode 1
|
||||||
|
8986 9016 I VrRuntimeClient: SetPhaseSyncMode 1
|
||||||
|
8986 9016 I OpenXR : PhaseSync Mode: 1
|
||||||
|
8986 9016 I VrRuntimeClient: VrRuntimeClient: Init
|
||||||
|
8986 9016 I PTKService: PTKServiceClient Init
|
||||||
|
8986 9016 I ClientProcessConnector [RUNTIMEIPC]: GetProcessConnection: com.oculus.vrshell:com.oculus.vrshell:Overlay
|
||||||
|
8986 9016 I RuntimeIPCClient [RUNTIMEIPC]: Event buffer size (client): 8192
|
||||||
|
8986 9016 I RuntimeIPCClient [RUNTIMEIPC]: TryToGetIPCResourcesFromServer: RPC_CONNECTOR_CONNECT_TO_SERVER SUCCESS: Client: org.bevyengine.demo_openxr_android:org.bevyengine.demo_openxr_android:8986, Server: com.oculus.vrshell:com.oculus.vrshell:Overlay (ptkserviceserver)
|
||||||
|
8986 9016 I RuntimeIPCClient [RUNTIMEIPC]: EnsureServerConnection: SUCCESS. Client: org.bevyengine.demo_openxr_android:org.bevyengine.demo_openxr_android:8986, Server: com.oculus.vrshell:com.oculus.vrshell:Overlay (ptkserviceserver)
|
||||||
|
8986 9016 I RuntimeIPCClient [RUNTIMEIPC]: ConnectToServer: SUCCESS: Client: org.bevyengine.demo_openxr_android:org.bevyengine.demo_openxr_android:8986, Server: com.oculus.vrshell:com.oculus.vrshell:Overlay (ptkserviceserver)
|
||||||
|
8986 9016 I RuntimeIPCClient [RUNTIMEIPC]: InitServerStateBuffer: SUCCESS. 0, Client: org.bevyengine.demo_openxr_android:org.bevyengine.demo_openxr_android:8986, Server: com.oculus.vrshell:com.oculus.vrshell:Overlay (ptkserviceserver)
|
||||||
|
8986 9016 V OVR::Capture: Failed to open trace_marker ATrace file!
|
||||||
|
8986 9016 I RuntimeIPCClient [RUNTIMEIPC]: InitServerStateBuffer: SUCCESS. 0, Client: org.bevyengine.demo_openxr_android:org.bevyengine.demo_openxr_android:8986, Server: com.oculus.systemdriver:com.oculus.vrruntimeservice (RuntimeServiceServer)
|
||||||
|
8986 9016 I VrRuntimeClient: OSSDKTRACKING calculating secure tracking
|
||||||
|
8986 9016 I VrRuntimeClient: OSSDKTRACKING secure tracking is 0
|
||||||
|
8986 9016 I AudioCapture: AudioCapture::Init
|
||||||
|
8986 9016 I AudioCapture: AudioCapture::Init -> Initializing audio capture using direct OS Callbacks
|
||||||
|
8986 9016 I AudioCapture: AudioCapture::Init COMPLETE
|
||||||
|
8986 9016 I Foveation: Vulkan foveation tile offset enabled: 0
|
||||||
|
8986 9016 I Foveation: Vulkan foveation tile turn off enabled: 1
|
||||||
|
8986 9016 I ClientProcessConnector [RUNTIMEIPC]: GetProcessConnection: com.oculus.guardian:com.oculus.vrguardianservice
|
||||||
|
8986 9016 I RuntimeIPCClient [RUNTIMEIPC]: Event buffer size (client): 8192
|
||||||
|
8986 9016 I RuntimeIPCClient [RUNTIMEIPC]: TryToGetIPCResourcesFromServer: RPC_CONNECTOR_CONNECT_TO_SERVER SUCCESS: Client: org.bevyengine.demo_openxr_android:org.bevyengine.demo_openxr_android:8986, Server: com.oculus.guardian:com.oculus.vrguardianservice (guardianserver)
|
||||||
|
8986 9016 I RuntimeIPCClient [RUNTIMEIPC]: EnsureServerConnection: SUCCESS. Client: org.bevyengine.demo_openxr_android:org.bevyengine.demo_openxr_android:8986, Server: com.oculus.guardian:com.oculus.vrguardianservice (guardianserver)
|
||||||
|
8986 9016 I RuntimeIPCClient [RUNTIMEIPC]: ConnectToServer: SUCCESS: Client: org.bevyengine.demo_openxr_android:org.bevyengine.demo_openxr_android:8986, Server: com.oculus.guardian:com.oculus.vrguardianservice (guardianserver)
|
||||||
|
8986 9016 I VrGuardianClient: g_GuardianSDKClient connected.
|
||||||
|
8986 9016 I VrRuntimeClient: Is120HzSupported: 1
|
||||||
|
8986 9016 I FaceEyeTrackingManagerHelpers: [FaceEyeTrackingManager] Audio FT GK: 0
|
||||||
|
8986 9016 I LogTimer: CPUTIME: VrRuntimeClient_Init took 156.5617 ms
|
||||||
|
8986 9016 I VulkanLoader: ovrVulkanLoader::Load
|
||||||
|
8986 9016 W VulkanLoader: VulkanLoader::LoadInstanceFunctions: Failed to load vkCreateDebugReportCallbackEXT, likely vkInstance created without xrGetVulkanInstanceExtensionsKHR/vrapi_GetInstanceExtensionsVulkan
|
||||||
|
8986 9016 W VulkanLoader: VulkanLoader::LoadInstanceFunctions: Failed to load vkDestroyDebugReportCallbackEXT, likely vkInstance created without xrGetVulkanInstanceExtensionsKHR/vrapi_GetInstanceExtensionsVulkan
|
||||||
|
8986 9016 W VulkanLoader: VulkanLoader::LoadDeviceFunctions: Failed to load vkCmdDebugMarkerInsertEXT, likely vkDevice created without xrGetVulkanDeviceExtensionsKHR/vrapi_GetDeviceExtensionsVulkan
|
||||||
|
8986 9016 W VulkanLoader: VulkanLoader::LoadDeviceFunctions: Failed to load vkDebugMarkerSetObjectTagEXT, likely vkDevice created without xrGetVulkanDeviceExtensionsKHR/vrapi_GetDeviceExtensionsVulkan
|
||||||
|
8986 9016 W VulkanLoader: VulkanLoader::LoadDeviceFunctions: Failed to load vkGetMemoryFdKHR, likely vkDevice created without xrGetVulkanDeviceExtensionsKHR/vrapi_GetDeviceExtensionsVulkan
|
||||||
|
8986 9016 I Foveation: Vulkan FFR is supported, with density map size 32x32
|
||||||
|
8986 9016 I Distortion: Initializing Mesh Decenter Correction
|
||||||
|
8986 9016 I Distortion: SetLensPositions - iad=0.06485, left offset=0.000465658,-0.00151258, right offset=-0.000983495,-0.00165948
|
||||||
|
8986 9016 I Distortion: Initializing Mesh Decenter Correction
|
||||||
|
8986 9016 I Distortion: SetLensPositions - iad=0.06485, left offset=0.000465658,-0.00151258, right offset=-0.000983495,-0.00165948
|
||||||
|
8986 9016 I GkHelper: Checking gk 'oculus_miramar_colorspace_p3', default = false
|
||||||
|
8986 9016 I Colorspace: Miramar default OpenXR colorspace via GK: <default>
|
||||||
|
8986 9016 I ClientInputSettings: SYSTEMBUTTONSPACE GKS freeze '1'
|
||||||
|
8986 9016 I ClientInputSettings: SYSTEMBUTTONSPACE 'org.bevyengine.demo_openxr_android' Freeze input '1' on home button down
|
||||||
|
8986 9016 I ClientInputSettings: HANDTRACKING: Hands V2.0 enforced.
|
||||||
|
8986 9016 I ClientInputSettings: HANDTRACKING: YES, in the GK oculus_mobile_enable_hand_tracking_frequency_inter
|
||||||
|
8986 9016 I ClientInputInterface: HANDTRACKING sethandtrackingfrequency 1
|
||||||
|
8986 9016 I ClientInputSettings: HANDTRACKING: YES, in the GK oculus_mobile_30hz_handtracking_downclocking
|
||||||
|
8986 9016 I ClientInputInterface: Set30HzHandtrackingDownclockingGKFlag 1
|
||||||
|
8986 9016 I ClientInputSettings: HANDTRACKING: NO, not in the GK oculus_mobile_enable_hand_emulation_of_controllers
|
||||||
|
8986 9016 I ClientInputInterface: HANDTRACKING SetHandTrackingControllerEmulationGkFlag 0
|
||||||
|
8986 9016 I InputHooks: InitializeInputHooks
|
||||||
|
8986 9016 I InputHooks: InitializeInputHooks create
|
||||||
|
8986 9016 I OpenXR : Disable output struct type validation on org.bevyengine.demo_openxr_android.
|
||||||
|
8986 9016 I OpenXR : Disable GetFaceExpressionWeights return code fix on org.bevyengine.demo_openxr_android.
|
||||||
|
8986 9016 I OpenXR : Disable HandJointPalmFix on org.bevyengine.demo_openxr_android.
|
||||||
|
8986 9016 I OpenXR : xrCreateSession: Activity is not yet in the ready state.
|
||||||
|
8986 9016 I XrRuntimeUtils: XrRuntimeUtils::CreateSession
|
||||||
|
8986 9016 I OpenXR : ------------ xrCreateSession [end] -----------
|
||||||
|
8986 9016 I SwapChain_Vulkan_Memory_Export: Imported texture has requirements 3, ends up index 0
|
||||||
|
8986 9016 I SwapChain_Vulkan_Memory_Export: Imported texture has requirements 3, ends up index 0
|
||||||
|
8986 9016 I SwapChain_Vulkan_Memory_Export: Imported texture has requirements 3, ends up index 0
|
||||||
|
8986 9016 I OpenXR_Space: xrCreateReferenceSpace: Spaces info
|
||||||
|
8986 9016 I OpenXR_Space: xrCreateReferenceSpace: Local version=45
|
||||||
|
8986 9016 I OpenXR_Space: xrCreateReferenceSpace: RawFromLocal = (0.000, 0.073, 0.000, 0.997), (-0.16, 0.12, 0.06)
|
||||||
|
8986 9016 I OpenXR_Space: xrCreateReferenceSpace: RawFromLocalTilted = (-0.010, 0.075, 0.117, 0.990), (-0.16, 0.12, 0.06)
|
||||||
|
8986 9016 I OpenXR_Space: xrCreateReferenceSpace: Stage IsValid=true
|
||||||
|
8986 9016 I OpenXR_Space: xrCreateReferenceSpace: Stage HasActiveGuardian=true
|
||||||
|
8986 9016 I OpenXR_Space: xrCreateReferenceSpace: Stage Width=4.762032, Depth=4.001123
|
||||||
|
8986 9016 I OpenXR_Space: xrCreateReferenceSpace: RawFromStage = (0.000, 0.633, 0.000, 0.774), (0.09, -0.77, 1.26)
|
||||||
|
8986 9016 I OboeAudio: openStream() OUTPUT -------- OboeVersion1.7.0 --------
|
||||||
|
8986 9016 I AAudio : AAudioStreamBuilder_openStream() called ----------------------------------------
|
||||||
|
8986 9016 I AudioStreamBuilder: rate = 44100, channels = 2, channelMask = 0x80000003, format = 5, sharing = SH, dir = OUTPUT
|
||||||
|
8986 9016 I AudioStreamBuilder: device = 0, sessionId = -1, perfMode = 10, callback: ON with frames = 0
|
||||||
|
8986 9016 I AudioStreamBuilder: usage = 1, contentType = 2, inputPreset = 6, allowedCapturePolicy = 0
|
||||||
|
8986 9016 I AudioStreamBuilder: privacy sensitive = false
|
||||||
|
8986 9016 I AudioStreamBuilder: opPackageName = (null)
|
||||||
|
8986 9016 I AudioStreamBuilder: attributionTag = (null)
|
||||||
|
8986 9016 D AudioStreamBuilder: build() [meta] disable aaudio mmap via gk
|
||||||
|
8986 9016 D AudioStreamBuilder: build() MMAP not used because AAUDIO_PERFORMANCE_MODE_LOW_LATENCY not requested.
|
||||||
|
8986 9016 D _openxr_androi: PlayerBase::PlayerBase()
|
||||||
|
8986 9016 D AudioStreamTrack: open(), request notificationFrames = 0, frameCount = 0
|
||||||
|
8986 9016 D AAudioStream: setState(s#1) from 0 to 2
|
||||||
|
8986 9016 I AAudio : AAudioStreamBuilder_openStream() returns 0 = AAUDIO_OK for s#1 ----------------
|
||||||
|
8986 9016 D AAudio : AAudioStream_requestStart(s#1) called --------------
|
||||||
|
8986 9016 D AAudioStream: setState(s#1) from 2 to 3
|
||||||
|
8986 9016 D AAudio : AAudioStream_requestStart(s#1) returned 0 ---------
|
||||||
|
8986 9043 D AudioStreamLegacy: onAudioDeviceUpdate(deviceId = 2)
|
||||||
|
8986 9016 E event /home/schmarni/.cargo/git/checkouts/bevy-f7ffde730c324c74/d67fbd5/crates/bevy_gilrs/src/ Failed to start Gilrs. Gilrs does not support current platform.
|
||||||
|
8986 9044 D AAudioStream: setState(s#1) from 3 to 4
|
||||||
|
8986 9016 W event /home/schmarni/.cargo/git/checkouts/bevy-f7ffde730c324c74/d67fbd5/crates/bevy_pbr/src/ss ScreenSpaceAmbientOcclusionPlugin not loaded. GPU lacks support: Limits::max_storage_textures_per_shader_stage is less than 5.
|
||||||
|
8986 9020 I OpenXR_Actions: -- xrSuggestInteractionProfileBindings -
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy-f7ffde730c324c74/d67fbd5/crates/bevy_diagnostic SystemInfo { os: "Android 12 Quest 2", kernel: "4.19.157+", cpu: "", core_count: "8", memory: "5.7 GiB" }
|
||||||
|
8986 9020 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=19, action=hand_pose, subactionMask=1, pathActionType=4
|
||||||
|
8986 9020 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=35, action=hand_pose, subactionMask=2, pathActionType=4
|
||||||
|
8986 9020 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=18, action=pointer_pose, subactionMask=1, pathActionType=4
|
||||||
|
8986 9020 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=9, action=squeeze, subactionMask=1, pathActionType=2
|
||||||
|
8986 9020 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=25, action=squeeze, subactionMask=2, pathActionType=2
|
||||||
|
8986 9020 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=26, action=trigger, subactionMask=2, pathActionType=2
|
||||||
|
8986 9020 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=10, action=trigger, subactionMask=1, pathActionType=2
|
||||||
|
8986 9020 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=27, action=trigger_touched, subactionMask=2, pathActionType=1
|
||||||
|
8986 9020 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=11, action=trigger_touched, subactionMask=1, pathActionType=1
|
||||||
|
8986 9020 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=33, action=haptic_feedback, subactionMask=2, pathActionType=100
|
||||||
|
8986 9020 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=17, action=haptic_feedback, subactionMask=1, pathActionType=100
|
||||||
|
8986 9020 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=4, action=x_button, subactionMask=1, pathActionType=1
|
||||||
|
8986 9020 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=5, action=x_button_touch, subactionMask=1, pathActionType=1
|
||||||
|
8986 9020 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=6, action=y_button, subactionMask=1, pathActionType=1
|
||||||
|
8986 9020 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=7, action=y_button_touch, subactionMask=1, pathActionType=1
|
||||||
|
8986 9020 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=8, action=menu_button, subactionMask=1, pathActionType=1
|
||||||
|
8986 9020 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=20, action=a_button, subactionMask=2, pathActionType=1
|
||||||
|
8986 9020 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=21, action=a_button_touch, subactionMask=2, pathActionType=1
|
||||||
|
8986 9020 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=22, action=b_button, subactionMask=2, pathActionType=1
|
||||||
|
8986 9020 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=23, action=b_button_touch, subactionMask=2, pathActionType=1
|
||||||
|
8986 9020 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=12, action=thumbstick_x, subactionMask=1, pathActionType=2
|
||||||
|
8986 9020 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=28, action=thumbstick_x, subactionMask=2, pathActionType=2
|
||||||
|
8986 9020 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=13, action=thumbstick_y, subactionMask=1, pathActionType=2
|
||||||
|
8986 9020 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=29, action=thumbstick_y, subactionMask=2, pathActionType=2
|
||||||
|
8986 9020 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=14, action=thumbstick_click, subactionMask=1, pathActionType=1
|
||||||
|
8986 9020 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=30, action=thumbstick_click, subactionMask=2, pathActionType=1
|
||||||
|
8986 9020 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=15, action=thumbstick_touch, subactionMask=1, pathActionType=1
|
||||||
|
8986 9020 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=31, action=thumbstick_touch, subactionMask=2, pathActionType=1
|
||||||
|
8986 9020 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=16, action=thumbrest_touch, subactionMask=1, pathActionType=1
|
||||||
|
8986 9020 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=32, action=thumbrest_touch, subactionMask=2, pathActionType=1
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9020 I JniUtils-inl: Creating temporary JNIEnv. This is a heavy operation and should be infrequent. To optimize, use JNI AttachCurrentThread on calling thread
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9019 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
8986 9020 I OpenXR : PostSessionStateChange: XR_SESSION_STATE_UNKNOWN -> XR_SESSION_STATE_IDLE
|
||||||
|
8986 9020 I Deque : AddEventToQueue called. eventInfo.type: 18, eventInfo.next: 1
|
||||||
|
8986 9020 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/lib.rs:240: entered XR state IDLE
|
||||||
|
8986 9020 W OpenXR : xrWaitFrame: session is not running.
|
||||||
|
8986 9015 I RustStdoutStderr: [31mThe application panicked (crashed).[0m
|
||||||
|
8986 9015 I RustStdoutStderr: Message: [36mcalled `Result::unwrap()` on an `Err` value: ERROR_SESSION_NOT_RUNNING[0m
|
||||||
|
8986 9015 I RustStdoutStderr: Location: [35m/home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/lib.rs[0m:[35m264[0m
|
||||||
|
8986 9015 I RustStdoutStderr:
|
||||||
|
8986 9015 I RustStdoutStderr: Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
|
||||||
|
8986 9015 I RustStdoutStderr: Run with RUST_BACKTRACE=full to include source snippets.
|
||||||
|
8986 9015 I RustStdoutStderr: Warning: SpanTrace capture is Unsupported.
|
||||||
|
8986 9015 I RustStdoutStderr: Ensure that you've setup a tracing-error ErrorLayer and the semver versions are compatible
|
||||||
|
--------- beginning of crash
|
||||||
|
|
||||||
|
8986 9020 F libc : Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 9020 (Compute Task Po), pid 8986 (_openxr_android)
|
||||||
|
9050 9050 I crash_dump64: obtaining output fd from tombstoned, type: kDebuggerdTombstoneProto
|
||||||
|
9050 9050 I crash_dump64: performing dump of process 8986 (target tid = 9020)
|
||||||
|
9050 9050 I DEBUG : Current uptime at crash: 140835 seconds
|
||||||
|
9050 9050 F DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
|
||||||
|
9050 9050 F DEBUG : Build fingerprint: 'oculus/hollywood/hollywood:12/SQ3A.220605.009.A1/50623410078100150:user/release-keys'
|
||||||
|
9050 9050 F DEBUG : Revision: '0'
|
||||||
|
9050 9050 F DEBUG : ABI: 'arm64'
|
||||||
|
9050 9050 F DEBUG : Timestamp: 2023-10-31 17:16:29.311291746+0100
|
||||||
|
9050 9050 F DEBUG : Process uptime: 1s
|
||||||
|
9050 9050 F DEBUG : Cmdline: org.bevyengine.demo_openxr_android
|
||||||
|
9050 9050 F DEBUG : pid: 8986, tid: 9020, name: Compute Task Po >>> org.bevyengine.demo_openxr_android <<<
|
||||||
|
9050 9050 F DEBUG : uid: 10060
|
||||||
|
9050 9050 F DEBUG : signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr --------
|
||||||
|
9050 9050 F DEBUG : Abort message: 'called `Result::unwrap()` on an `Err` value: ERROR_SESSION_NOT_RUNNING'
|
||||||
|
9050 9050 F DEBUG : x0 0000000000000000 x1 000000000000233c x2 0000000000000006 x3 000000782a278b40
|
||||||
|
9050 9050 F DEBUG : x4 0000000000008000 x5 0000000000008000 x6 0000000000008000 x7 0000000000000000
|
||||||
|
9050 9050 F DEBUG : x8 00000000000000f0 x9 00000079424da5d8 x10 0000000000000000 x11 ffffff80fffffbdf
|
||||||
|
9050 9050 F DEBUG : x12 0000000000000001 x13 525f544f4e5f4e4f x14 00000000000000c8 x15 0000000000000038
|
||||||
|
9050 9050 F DEBUG : x16 00000079425a1dc0 x17 000000794257fb60 x18 00000078267e6000 x19 000000000000231a
|
||||||
|
9050 9050 F DEBUG : x20 000000000000233c x21 00000000ffffffff x22 000000782e675ae0 x23 000000782a278e00
|
||||||
|
9050 9050 F DEBUG : x24 000000782d172948 x25 000000782e7c1198 x26 000000782e7c11b8 x27 000000782a27a060
|
||||||
|
9050 9050 F DEBUG : x28 000000782a27a060 x29 000000782a278bc0
|
||||||
|
9050 9050 F DEBUG : lr 000000794253bc5c sp 000000782a278b20 pc 000000794253bc8c pst 0000000000001000
|
||||||
|
9050 9050 F DEBUG : backtrace:
|
||||||
|
9050 9050 F DEBUG : #00 pc 0000000000089c8c /apex/com.android.runtime/lib64/bionic/libc.so (abort+168) (BuildId: 9bab48b8427561f041dc114e49bfd38b)
|
||||||
|
9050 9050 F DEBUG : #01 pc 0000000001993834 /data/app/~~SIt7BvKZ9id9zPJkk8E79w==/org.bevyengine.demo_openxr_android-7MbCg-EKRIqT0VODkBZfLA==/lib/arm64/libdemo.so (panic_abort::__rust_start_panic::abort::hf9486a0d1cc2ac08+4) (BuildId: 5c943a49e7770f56)
|
||||||
|
9050 9050 F DEBUG : #02 pc 0000000001993828 /data/app/~~SIt7BvKZ9id9zPJkk8E79w==/org.bevyengine.demo_openxr_android-7MbCg-EKRIqT0VODkBZfLA==/lib/arm64/libdemo.so (__rust_start_panic+8) (BuildId: 5c943a49e7770f56)
|
||||||
|
9050 9050 F DEBUG : #03 pc 0000000001985d7c /data/app/~~SIt7BvKZ9id9zPJkk8E79w==/org.bevyengine.demo_openxr_android-7MbCg-EKRIqT0VODkBZfLA==/lib/arm64/libdemo.so (rust_panic+8) (BuildId: 5c943a49e7770f56)
|
||||||
|
9050 9050 F DEBUG : #04 pc 0000000001985be4 /data/app/~~SIt7BvKZ9id9zPJkk8E79w==/org.bevyengine.demo_openxr_android-7MbCg-EKRIqT0VODkBZfLA==/lib/arm64/libdemo.so (std::panicking::rust_panic_with_hook::h9c80bfe4d552cb32+660) (BuildId: 5c943a49e7770f56)
|
||||||
|
9050 9050 F DEBUG : #05 pc 0000000001985930 /data/app/~~SIt7BvKZ9id9zPJkk8E79w==/org.bevyengine.demo_openxr_android-7MbCg-EKRIqT0VODkBZfLA==/lib/arm64/libdemo.so (std::panicking::begin_panic_handler::_$u7b$$u7b$closure$u7d$$u7d$::haece24ab2b06546c+196) (BuildId: 5c943a49e7770f56)
|
||||||
|
9050 9050 F DEBUG : #06 pc 0000000001984310 /data/app/~~SIt7BvKZ9id9zPJkk8E79w==/org.bevyengine.demo_openxr_android-7MbCg-EKRIqT0VODkBZfLA==/lib/arm64/libdemo.so (std::sys_common::backtrace::__rust_end_short_backtrace::h5255d8dea90e7932+4) (BuildId: 5c943a49e7770f56)
|
||||||
|
9050 9050 F DEBUG : #07 pc 0000000001985680 /data/app/~~SIt7BvKZ9id9zPJkk8E79w==/org.bevyengine.demo_openxr_android-7MbCg-EKRIqT0VODkBZfLA==/lib/arm64/libdemo.so (rust_begin_unwind+108) (BuildId: 5c943a49e7770f56)
|
||||||
|
9050 9050 F DEBUG : #08 pc 00000000019a5a28 /data/app/~~SIt7BvKZ9id9zPJkk8E79w==/org.bevyengine.demo_openxr_android-7MbCg-EKRIqT0VODkBZfLA==/lib/arm64/libdemo.so (core::panicking::panic_fmt::h61a82d7f25335953+44) (BuildId: 5c943a49e7770f56)
|
||||||
|
9050 9050 F DEBUG : #09 pc 00000000019a5d48 /data/app/~~SIt7BvKZ9id9zPJkk8E79w==/org.bevyengine.demo_openxr_android-7MbCg-EKRIqT0VODkBZfLA==/lib/arm64/libdemo.so (core::result::unwrap_failed::h0973c0cfe8c3b00d+88) (BuildId: 5c943a49e7770f56)
|
||||||
|
9050 9050 F DEBUG : #10 pc 00000000009e8b80 /data/app/~~SIt7BvKZ9id9zPJkk8E79w==/org.bevyengine.demo_openxr_android-7MbCg-EKRIqT0VODkBZfLA==/lib/arm64/libdemo.so (bevy_openxr::xr_begin_frame::h9b87c0166e3ef0c3+3752) (BuildId: 5c943a49e7770f56)
|
||||||
|
9050 9050 F DEBUG : #11 pc 000000000095c8b8 /data/app/~~SIt7BvKZ9id9zPJkk8E79w==/org.bevyengine.demo_openxr_android-7MbCg-EKRIqT0VODkBZfLA==/lib/arm64/libdemo.so (_$LT$bevy_ecs..system..function_system..FunctionSystem$LT$Marker$C$F$GT$$u20$as$u20$bevy_ecs..system..system..System$GT$::run_unsafe::h0bd8a8c7266ad61d+704) (BuildId: 5c943a49e7770f56)
|
||||||
|
9050 9050 F DEBUG : #12 pc 00000000018b9120 /data/app/~~SIt7BvKZ9id9zPJkk8E79w==/org.bevyengine.demo_openxr_android-7MbCg-EKRIqT0VODkBZfLA==/lib/arm64/libdemo.so (async_executor::Executor::spawn::_$u7b$$u7b$closure$u7d$$u7d$::ha8e73461e94dfc87+116) (BuildId: 5c943a49e7770f56)
|
||||||
|
9050 9050 F DEBUG : #13 pc 00000000018b3580 /data/app/~~SIt7BvKZ9id9zPJkk8E79w==/org.bevyengine.demo_openxr_android-7MbCg-EKRIqT0VODkBZfLA==/lib/arm64/libdemo.so (async_task::raw::RawTask$LT$F$C$T$C$S$C$M$GT$::run::h04fb1857844bc080+292) (BuildId: 5c943a49e7770f56)
|
||||||
|
9050 9050 F DEBUG : #14 pc 00000000018e7b10 /data/app/~~SIt7BvKZ9id9zPJkk8E79w==/org.bevyengine.demo_openxr_android-7MbCg-EKRIqT0VODkBZfLA==/lib/arm64/libdemo.so (async_executor::Executor::run::_$u7b$$u7b$closure$u7d$$u7d$::h9aa771d4ba968762+4316) (BuildId: 5c943a49e7770f56)
|
||||||
|
9050 9050 F DEBUG : #15 pc 00000000018e8344 /data/app/~~SIt7BvKZ9id9zPJkk8E79w==/org.bevyengine.demo_openxr_android-7MbCg-EKRIqT0VODkBZfLA==/lib/arm64/libdemo.so (std::sys_common::backtrace::__rust_begin_short_backtrace::hdd78ac8ab492c8b7+560) (BuildId: 5c943a49e7770f56)
|
||||||
|
9050 9050 F DEBUG : #16 pc 00000000018e887c /data/app/~~SIt7BvKZ9id9zPJkk8E79w==/org.bevyengine.demo_openxr_android-7MbCg-EKRIqT0VODkBZfLA==/lib/arm64/libdemo.so (core::ops::function::FnOnce::call_once$u7b$$u7b$vtable.shim$u7d$$u7d$::h2eff1674ecfe0bf8+128) (BuildId: 5c943a49e7770f56)
|
||||||
|
9050 9050 F DEBUG : #17 pc 0000000001988260 /data/app/~~SIt7BvKZ9id9zPJkk8E79w==/org.bevyengine.demo_openxr_android-7MbCg-EKRIqT0VODkBZfLA==/lib/arm64/libdemo.so (std::sys::unix::thread::Thread::new::thread_start::hf5b87d2f06226386+24) (BuildId: 5c943a49e7770f56)
|
||||||
|
9050 9050 F DEBUG : #18 pc 00000000000df1d8 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+132) (BuildId: 9bab48b8427561f041dc114e49bfd38b)
|
||||||
|
9050 9050 F DEBUG : #19 pc 000000000008b2ec /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (BuildId: 9bab48b8427561f041dc114e49bfd38b)
|
||||||
738
examples/demo/quest2_stdout_no_stacktrace.txt
Normal file
738
examples/demo/quest2_stdout_no_stacktrace.txt
Normal file
@@ -0,0 +1,738 @@
|
|||||||
|
[1/3] Fetch precompiled artifacts
|
||||||
|
[1/3] Fetch precompiled artifacts [111ms]
|
||||||
|
[2/3] Build rust `demo`
|
||||||
|
[2/3] Build rust `demo` [1116ms]
|
||||||
|
[3/3] Create apk
|
||||||
|
[3/3] Create apk [3032ms]
|
||||||
|
/home/schmarni/Code/adeptus_bevy_oxr/examples/demo/target/x/release/android/demo.apk: 1 file pushed, 0 skipped. 136.7 MB/s (17960272 bytes in 0.125s)
|
||||||
|
Success
|
||||||
|
Starting: Intent { act=android.intent.action.MAIN cmp=org.bevyengine.demo_openxr_android/android.app.NativeActivity }
|
||||||
|
--------- beginning of main
|
||||||
|
|
||||||
|
25874 25874 E _openxr_androi: Not starting debugger since process cannot load the jdwp agent.
|
||||||
|
25874 25874 D CompatibilityChangeReporter: Compat change id reported: 171979766; UID 10060; state: ENABLED
|
||||||
|
25874 25874 W System : ClassLoader referenced unknown path:
|
||||||
|
25874 25874 V GraphicsEnvironment: Lazy GPU memory allocation for 'org.bevyengine.demo_openxr_android': false
|
||||||
|
25874 25874 V GraphicsEnvironment: ANGLE Developer option for 'org.bevyengine.demo_openxr_android' set to: 'default'
|
||||||
|
25874 25874 V GraphicsEnvironment: ANGLE GameManagerService for org.bevyengine.demo_openxr_android: false
|
||||||
|
25874 25874 V GraphicsEnvironment: Neither updatable production driver nor prerelease driver is supported.
|
||||||
|
25874 25874 D CompatibilityChangeReporter: Compat change id reported: 175409949; UID 10060; state: DISABLED
|
||||||
|
25874 25874 D CompatibilityChangeReporter: Compat change id reported: 175409951; UID 10060; state: ENABLED
|
||||||
|
25874 25874 D CompatibilityChangeReporter: Compat change id reported: 175409950; UID 10060; state: DISABLED
|
||||||
|
25874 25874 D NetworkSecurityConfig: No Network Security Config specified, using platform default
|
||||||
|
25874 25874 D CompatibilityChangeReporter: Compat change id reported: 175409952; UID 10060; state: DISABLED
|
||||||
|
25874 25874 D NetworkSecurityConfig: No Network Security Config specified, using platform default
|
||||||
|
25874 25874 W Thread-2: type=1400 audit(0.0:284): avc: denied { read } for name="cpu.cfs_quota_us" dev="cgroup" ino=9 scontext=u:r:untrusted_app:s0:c60,c256,c512,c768 tcontext=u:object_r:cgroup:s0 tclass=file permissive=0 app=org.bevyengine.demo_openxr_android
|
||||||
|
25874 25874 W Thread-2: type=1400 audit(0.0:285): avc: denied { read } for name="cpu.cfs_period_us" dev="cgroup" ino=10 scontext=u:r:untrusted_app:s0:c60,c256,c512,c768 tcontext=u:object_r:cgroup:s0 tclass=file permissive=0 app=org.bevyengine.demo_openxr_android
|
||||||
|
25874 25910 V OpenXR-Loader: Verbose [GENERAL | xrInitializeLoaderKHR | OpenXR-Loader] : Entering loader trampoline
|
||||||
|
25874 25910 V OpenXR-Loader: Verbose [GENERAL | xrEnumerateInstanceExtensionProperties | OpenXR-Loader] : Entering loader trampoline
|
||||||
|
25874 25910 D ApplicationLoaders: Returning zygote-cached class loader: /system/framework/android.test.base.jar
|
||||||
|
25874 25910 D ApplicationLoaders: Returning zygote-cached class loader: /system/framework/android.hidl.manager-V1.0-java.jar
|
||||||
|
25874 25910 D ApplicationLoaders: Returning zygote-cached class loader: /system/framework/android.hidl.base-V1.0-java.jar
|
||||||
|
25874 25910 D vulkan : searching for layers in '/data/app/~~HX0xG_Hcezzhp_rQ8DLibQ==/org.bevyengine.demo_openxr_android-9DYAk0Wd15ZqQ9imRrrOHA==/lib/arm64'
|
||||||
|
25874 25910 D vulkan : searching for layers in '/data/app/~~HX0xG_Hcezzhp_rQ8DLibQ==/org.bevyengine.demo_openxr_android-9DYAk0Wd15ZqQ9imRrrOHA==/base.apk!/lib/arm64-v8a'
|
||||||
|
25874 25910 I DriverLoader: Calling into SetLegacyVrApiEntryPointOverride
|
||||||
|
25874 25910 I VrApi_DriverLoader: SetLegacyVrApiEntryPointOverride: calling sprintf
|
||||||
|
25874 25910 I VrApi_DriverLoader: SetLegacyVrApiEntryPointOverride: env buffer is '0x78242bae60'
|
||||||
|
25874 25910 I VrApi_DriverLoader: SetLegacyVrApiEntryPointOverride: calling setenv
|
||||||
|
25874 25910 I DriverLoader: Creating Temp JNIEnv
|
||||||
|
25874 25910 I DriverLoader: Calling FindClass
|
||||||
|
25874 25910 I DriverLoader: Calling RegisterNativeVrApiLoaderMethods
|
||||||
|
25874 25910 I VrApi_DriverLoader: RegisterNativeVrApiLoaderMethods: calling RegisterNatives
|
||||||
|
25874 25910 I DriverLoader: Calling RegisterNativeXrLoaderMethods
|
||||||
|
25874 25910 I OpenXR_DriverLoader: RegisterNativeVrApiLoaderMethods: calling RegisterNatives
|
||||||
|
25874 25910 I DriverLoader: Exiting JNI_OnLoad
|
||||||
|
25874 25910 I OpenXR_ClientState: OpenXRClientState::create - from xrInitializeLoaderKHR
|
||||||
|
25874 25910 I XrRuntimeSharedClientState: SharedClientState::create called from 'OpenXRClientState::init'
|
||||||
|
25874 25910 I ipcLoader [RUNTIMEIPC]: RuntimeIPC: Loader: IPC Service API Loader Version: 52 Oct 7 2023 12:26:40
|
||||||
|
25874 25910 I ipcLoader [RUNTIMEIPC]: RuntimeIPC: Using android_get_exported_namespace: libripcclient.oculus.so
|
||||||
|
25874 25910 I ipcLoader [RUNTIMEIPC]: RuntimeIPC: android_get_exported_namespace SUCCESS: libripcclient.oculus.so
|
||||||
|
25874 25910 I DeadlockObserver [RUNTIMEIPC]: Init SUCCESS
|
||||||
|
25874 25919 I DeadlockObserver [RUNTIMEIPC]: MainLoop starting
|
||||||
|
25874 25920 D IPCDataChannelServer [RUNTIMEIPC]: Connected: 1, broker_package:broker_process:0
|
||||||
|
25874 25910 I BrokerRPC [RUNTIMEIPC]: InitRPCToServiceInternal: Success
|
||||||
|
25874 25910 I RuntimeIPCSystem [RUNTIMEIPC]: RuntimeIPCSystem: Init SUCCESS
|
||||||
|
25874 25910 I ClientProcessConnector [RUNTIMEIPC]: GetProcessConnection: com.oculus.systemdriver:com.oculus.vrruntimeservice
|
||||||
|
25874 25910 I RuntimeIPCClient [RUNTIMEIPC]: Event buffer size (client): 8192
|
||||||
|
25874 25910 I RuntimeIPCClient [RUNTIMEIPC]: TryToGetIPCResourcesFromServer: RPC_CONNECTOR_CONNECT_TO_SERVER SUCCESS: Client: org.bevyengine.demo_openxr_android:org.bevyengine.demo_openxr_android:25874, Server: com.oculus.systemdriver:com.oculus.vrruntimeservice (gkcache)
|
||||||
|
25874 25910 I RuntimeIPCClient [RUNTIMEIPC]: EnsureServerConnection: SUCCESS. Client: org.bevyengine.demo_openxr_android:org.bevyengine.demo_openxr_android:25874, Server: com.oculus.systemdriver:com.oculus.vrruntimeservice (gkcache)
|
||||||
|
25874 25910 I RuntimeIPCClient [RUNTIMEIPC]: ConnectToServer: SUCCESS: Client: org.bevyengine.demo_openxr_android:org.bevyengine.demo_openxr_android:25874, Server: com.oculus.systemdriver:com.oculus.vrruntimeservice (gkcache)
|
||||||
|
25874 25910 I RuntimeIPCClient [RUNTIMEIPC]: InitServerStateBuffer: SUCCESS. 0, Client: org.bevyengine.demo_openxr_android:org.bevyengine.demo_openxr_android:25874, Server: com.oculus.systemdriver:com.oculus.vrruntimeservice (gkcache)
|
||||||
|
25874 25910 I OpenXR_ClientState: Client state creation succeeded.
|
||||||
|
25874 25910 I OpenXR-Loader: Info [GENERAL | xrEnumerateInstanceExtensionProperties | OpenXR-Loader] : RuntimeInterface::LoadRuntime succeeded loading runtime using interface version 1 and OpenXR API version 1.0
|
||||||
|
25874 25910 I OpenXR : IsFirstParty 0
|
||||||
|
25874 25910 W _openxr_androi: Accessing hidden method Landroid/content/pm/ApplicationInfo;->isPrivilegedApp()Z (blocked,test-api, reflection, denied)
|
||||||
|
25874 25910 W _openxr_androi: If this is a platform test consider enabling VMRuntime.ALLOW_TEST_API_ACCESS change id for this package.
|
||||||
|
25874 25910 I OpenXR : IsPrivileged 0
|
||||||
|
25874 25910 I OpenXR : Is_X_PartnerGateKeeper
|
||||||
|
25874 25910 I OpenXR : PGK Status: exp = 0, hor = false, dc = false
|
||||||
|
25874 25910 I OpenXR : Extension status: P
|
||||||
|
25874 25910 I OpenXR : IsFirstParty 0
|
||||||
|
25874 25910 I DeviceProperties: ovrDeviceProperties::Initialize
|
||||||
|
25874 25910 I DeviceProperties: Device Region: 'US'
|
||||||
|
25874 25910 I DeviceProperties: GPU Type: 'ADRENO_650'
|
||||||
|
25874 25910 I DeviceProperties: Num Refresh Rates Supported 61
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (0): 120.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (1): 119.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (2): 118.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (3): 117.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (4): 116.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (5): 115.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (6): 114.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (7): 113.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (8): 112.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (9): 111.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (10): 110.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (11): 109.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (12): 108.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (13): 107.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (14): 106.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (15): 105.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (16): 104.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (17): 103.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (18): 102.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (19): 101.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (20): 100.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (21): 99.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (22): 98.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (23): 97.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (24): 96.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (25): 95.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (26): 94.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (27): 93.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (28): 92.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (29): 91.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (30): 90.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (31): 89.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (32): 88.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (33): 87.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (34): 86.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (35): 85.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (36): 84.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (37): 83.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (38): 82.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (39): 81.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (40): 80.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (41): 79.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (42): 78.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (43): 77.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (44): 76.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (45): 75.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (46): 74.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (47): 73.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (48): 72.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (49): 71.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (50): 70.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (51): 69.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (52): 68.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (53): 67.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (54): 66.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (55): 65.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (56): 64.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (57): 63.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (58): 62.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (59): 61.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (60): 60.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: DisplayParms.ScanoutDirection = 1
|
||||||
|
25874 25910 I DeviceProperties: DisplayParms.ShutterType = 1
|
||||||
|
25874 25874 W Thread-2: type=1400 audit(0.0:286): avc: denied { read } for name="u:object_r:vendor_board_init_prop:s0" dev="tmpfs" ino=12449 scontext=u:r:untrusted_app:s0:c60,c256,c512,c768 tcontext=u:object_r:vendor_board_init_prop:s0 tclass=file permissive=0 app=org.bevyengine.demo_openxr_android
|
||||||
|
25874 25910 I DeviceProperties: getDisplayDimensions returned: 3664, 1920
|
||||||
|
25874 25910 I DeviceProperties: ovrDeviceProperties: OVR_DEVICE_CAPABILITY_POSITIONAL_TRACKING_BIT
|
||||||
|
25874 25910 I DeviceProperties: ovrDeviceProperties: OVR_DEVICE_CAPABILITY_PASSTHROUGH_CAMERA_BIT
|
||||||
|
25874 25910 I DeviceProperties: ovrDeviceProperties: OVR_DEVICE_CAPABILITY_DYNAMIC_DISPLAY_REFRESH_RATE_BIT
|
||||||
|
25874 25910 I DeviceProperties: ovrDeviceProperties: OVR_DEVICE_CAPABILITY_MEMORY_EXPORT_BIT
|
||||||
|
25874 25910 I DeviceProperties: ovrDeviceProperties: OVR_DEVICE_CAPABILITY_FIXED_FOVEATED_RENDERING_BIT
|
||||||
|
25874 25910 I DeviceProperties: ovrDeviceProperties: OVR_DEVICE_CAPABILITY_SUBSAMPLED_LAYOUT_BIT
|
||||||
|
25874 25910 I DeviceProperties: ovrDeviceProperties: OVR_DEVICE_CAPABILITY_KEYBOARD_TRACKING_BIT
|
||||||
|
25874 25910 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FB_body_tracking` due to: missing uses-feature string `com.oculus.software.body_tracking` from AndroidManifest
|
||||||
|
25874 25910 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FB_keyboard_tracking` due to: missing uses-feature string `oculus.software.trackedkeyboard` from AndroidManifest
|
||||||
|
25874 25910 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FBX1_spatial_entity` due to: Tier=40 extState=P deviceIsExpEnabled=false expManifestSet=false isFirstPartyApp=false isSystemApp=false
|
||||||
|
25874 25910 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FBX2_spatial_entity` due to: Tier=40 extState=P deviceIsExpEnabled=false expManifestSet=false isFirstPartyApp=false isSystemApp=false
|
||||||
|
25874 25910 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FB_spatial_entity` due to: missing uses-permission string `com.oculus.permission.USE_ANCHOR_API` from AndroidManifest
|
||||||
|
25874 25910 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FB_triangle_mesh` due to: missing uses-feature string `com.oculus.feature.PASSTHROUGH` from AndroidManifest
|
||||||
|
25874 25910 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FB_passthrough` due to: missing uses-feature string `com.oculus.feature.PASSTHROUGH` from AndroidManifest
|
||||||
|
25874 25910 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_METAX1_passthrough_color_lut` due to: Tier=40 extState=P deviceIsExpEnabled=false expManifestSet=false isFirstPartyApp=false isSystemApp=false
|
||||||
|
25874 25910 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_META_passthrough_color_lut` due to: missing uses-feature string `com.oculus.feature.PASSTHROUGH` from AndroidManifest
|
||||||
|
25874 25910 I OpenXR : PassesGKKillswitch 1
|
||||||
|
25874 25910 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FB_render_model` due to: missing uses-feature string `com.oculus.feature.RENDER_MODEL` from AndroidManifest
|
||||||
|
25874 25910 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FBX1_spatial_entity_query` due to: Tier=40 extState=P deviceIsExpEnabled=false expManifestSet=false isFirstPartyApp=false isSystemApp=false
|
||||||
|
25874 25910 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FBX2_spatial_entity_query` due to: Tier=40 extState=P deviceIsExpEnabled=false expManifestSet=false isFirstPartyApp=false isSystemApp=false
|
||||||
|
25874 25910 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FB_spatial_entity_query` due to: missing uses-permission string `com.oculus.permission.USE_ANCHOR_API` from AndroidManifest
|
||||||
|
25874 25910 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FBX1_touch_controller_extras` due to: Tier=40 extState=P deviceIsExpEnabled=false expManifestSet=false isFirstPartyApp=false isSystemApp=false
|
||||||
|
25874 25910 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FBX1_spatial_entity_storage` due to: Tier=40 extState=P deviceIsExpEnabled=false expManifestSet=false isFirstPartyApp=false isSystemApp=false
|
||||||
|
25874 25910 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FBX2_spatial_entity_storage` due to: Tier=40 extState=P deviceIsExpEnabled=false expManifestSet=false isFirstPartyApp=false isSystemApp=false
|
||||||
|
25874 25910 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FB_spatial_entity_storage` due to: missing uses-permission string `com.oculus.permission.USE_ANCHOR_API` from AndroidManifest
|
||||||
|
25874 25910 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FB_spatial_entity_storage_batch` due to: missing uses-permission string `com.oculus.permission.USE_ANCHOR_API` from AndroidManifest
|
||||||
|
25874 25910 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FB_spatial_entity_sharing` due to: missing uses-permission string `com.oculus.permission.IMPORT_EXPORT_IOT_MAP_DATA` from AndroidManifest
|
||||||
|
25874 25910 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FB_spatial_entity_container` due to: missing uses-permission string `com.oculus.permission.USE_ANCHOR_API` from AndroidManifest
|
||||||
|
25874 25910 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FB_scene` due to: missing uses-permission string `com.oculus.permission.USE_ANCHOR_API` from AndroidManifest
|
||||||
|
25874 25910 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FB_scene_capture` due to: missing uses-permission string `com.oculus.permission.USE_ANCHOR_API` from AndroidManifest
|
||||||
|
25874 25910 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_META_spatial_entity_mesh` due to: missing uses-permission string `com.oculus.permission.USE_SCENE` from AndroidManifest
|
||||||
|
25874 25910 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FB_face_tracking` due to: missing uses-feature string `oculus.software.face_tracking` from AndroidManifest
|
||||||
|
25874 25910 I OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension 'XR_META_local_dimming' as device requirements requirements (16) are not met.
|
||||||
|
25874 25910 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_META_foveation_eye_tracked` due to: missing uses-feature string `oculus.software.eye_tracking` from AndroidManifest
|
||||||
|
25874 25910 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FB_eye_tracking_social` due to: missing uses-feature string `oculus.software.eye_tracking` from AndroidManifest
|
||||||
|
25874 25910 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FB_passthrough_keyboard_hands` due to: missing uses-feature string `com.oculus.feature.PASSTHROUGH` from AndroidManifest
|
||||||
|
25874 25910 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FBX1_composition_layer_settings` due to: Tier=40 extState=P deviceIsExpEnabled=false expManifestSet=false isFirstPartyApp=false isSystemApp=false
|
||||||
|
25874 25910 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_FBX1_composition_layer_depth_test` due to: Tier=40 extState=P deviceIsExpEnabled=false expManifestSet=false isFirstPartyApp=false isSystemApp=false
|
||||||
|
25874 25910 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_EXT_eye_gaze_interaction` due to: missing uses-permission string `com.oculus.permission.EYE_TRACKING` from AndroidManifest
|
||||||
|
25874 25910 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_EXT_hand_joints_motion_range` due to: Tier=40 extState=P deviceIsExpEnabled=false expManifestSet=false isFirstPartyApp=false isSystemApp=false
|
||||||
|
25874 25910 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_EXTX1_hand_tracking_data_source` due to: Tier=40 extState=P deviceIsExpEnabled=false expManifestSet=false isFirstPartyApp=false isSystemApp=false
|
||||||
|
25874 25910 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_METAX1_performance_metrics` due to: Tier=40 extState=P deviceIsExpEnabled=false expManifestSet=false isFirstPartyApp=false isSystemApp=false
|
||||||
|
25874 25910 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_METAX1_virtual_keyboard` due to: Tier=40 extState=P deviceIsExpEnabled=false expManifestSet=false isFirstPartyApp=false isSystemApp=false
|
||||||
|
25874 25910 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_METAX2_virtual_keyboard` due to: Tier=40 extState=P deviceIsExpEnabled=false expManifestSet=false isFirstPartyApp=false isSystemApp=false
|
||||||
|
25874 25910 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_METAX2_detached_controllers` due to: Tier=40 extState=P deviceIsExpEnabled=false expManifestSet=false isFirstPartyApp=false isSystemApp=false
|
||||||
|
25874 25910 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_EXTX1_event_channel` due to: Tier=40 extState=P deviceIsExpEnabled=false expManifestSet=false isFirstPartyApp=false isSystemApp=false
|
||||||
|
25874 25910 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_METAX1_environment_depth` due to: Tier=40 extState=P deviceIsExpEnabled=false expManifestSet=false isFirstPartyApp=false isSystemApp=false
|
||||||
|
25874 25910 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_EXT_active_action_set_priority` due to: Tier=40 extState=P deviceIsExpEnabled=false expManifestSet=false isFirstPartyApp=false isSystemApp=false
|
||||||
|
25874 25910 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_EXT_palm_pose` due to: Tier=40 extState=P deviceIsExpEnabled=false expManifestSet=false isFirstPartyApp=false isSystemApp=false
|
||||||
|
25874 25910 W OpenXR : xrEnumerateInstanceExtensionProperties: skipping extension=`XR_METAX1_simultaneous_hands_controllers_management` due to: Tier=40 extState=P deviceIsExpEnabled=false expManifestSet=false isFirstPartyApp=false isSystemApp=false
|
||||||
|
25874 25910 V OpenXR-Loader: Verbose [GENERAL | xrEnumerateInstanceExtensionProperties | OpenXR-Loader] : Completed loader trampoline
|
||||||
|
25874 25910 V OpenXR-Loader: Verbose [GENERAL | xrEnumerateInstanceExtensionProperties | OpenXR-Loader] : Entering loader trampoline
|
||||||
|
25874 25910 V OpenXR-Loader: Verbose [GENERAL | xrEnumerateInstanceExtensionProperties | OpenXR-Loader] : Completed loader trampoline
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu available xr exts: ExtensionSet {
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu almalence_digital_lens_control: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu epic_view_configuration_fov: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu ext_performance_settings: true,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu ext_thermal_query: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu ext_debug_utils: true,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu ext_eye_gaze_interaction: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu ext_view_configuration_depth_range: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu ext_conformance_automation: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu ext_hand_tracking: true,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu ext_dpad_binding: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu ext_hand_joints_motion_range: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu ext_samsung_odyssey_controller: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu ext_hp_mixed_reality_controller: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu ext_palm_pose: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu ext_uuid: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu extx_overlay: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_composition_layer_image_layout: true,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_composition_layer_alpha_blend: true,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_android_surface_swapchain_create: true,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_swapchain_update_state: true,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_composition_layer_secure_content: true,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_display_refresh_rate: true,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_color_space: true,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_hand_tracking_mesh: true,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_hand_tracking_aim: true,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_hand_tracking_capsules: true,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_spatial_entity: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_foveation: true,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_foveation_configuration: true,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_keyboard_tracking: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_triangle_mesh: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_passthrough: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_render_model: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_spatial_entity_query: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_spatial_entity_storage: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_foveation_vulkan: true,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_swapchain_update_state_android_surface: true,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_swapchain_update_state_opengl_es: true,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_swapchain_update_state_vulkan: true,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_space_warp: true,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_scene: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_spatial_entity_container: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_passthrough_keyboard_hands: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu fb_composition_layer_settings: true,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu htc_vive_cosmos_controller_interaction: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu htc_facial_tracking: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu htc_vive_focus3_controller_interaction: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu htc_hand_interaction: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu htc_vive_wrist_tracker_interaction: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu htcx_vive_tracker_interaction: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu huawei_controller_interaction: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu khr_android_thread_settings: true,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu khr_android_surface_swapchain: true,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu khr_composition_layer_cube: true,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu khr_android_create_instance: true,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu khr_composition_layer_depth: true,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu khr_vulkan_swapchain_format_list: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu khr_composition_layer_cylinder: true,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu khr_composition_layer_equirect: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu khr_opengl_enable: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu khr_opengl_es_enable: true,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu khr_vulkan_enable: true,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu khr_visibility_mask: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu khr_composition_layer_color_scale_bias: true,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu khr_convert_timespec_time: true,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu khr_loader_init: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu khr_loader_init_android: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu khr_vulkan_enable2: true,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu khr_composition_layer_equirect2: true,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu khr_binding_modification: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu khr_swapchain_usage_input_attachment_bit: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu meta_vulkan_swapchain_create_info: true,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu meta_performance_metrics: true,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu ml_ml2_controller_interaction: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu mnd_headless: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu mnd_swapchain_usage_input_attachment_bit: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu mndx_egl_enable: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu msft_unbounded_reference_space: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu msft_spatial_anchor: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu msft_spatial_graph_bridge: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu msft_hand_interaction: true,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu msft_hand_tracking_mesh: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu msft_secondary_view_configuration: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu msft_first_person_observer: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu msft_controller_model: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu msft_composition_layer_reprojection: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu msft_spatial_anchor_persistence: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu oculus_android_session_state_enable: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu oculus_audio_device_guid: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu ultraleap_hand_tracking_forearm: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu valve_analog_threshold: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu varjo_quad_views: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu varjo_foveated_rendering: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu varjo_composition_layer_depth_test: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu varjo_environment_depth_estimation: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu varjo_marker_tracking: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu varjo_view_offset: false,
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu other: [
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu "XR_OCULUS_common_reference_spaces\0",
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu "XR_FB_common_events\0",
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu "XR_META_passthrough_preferences\0",
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu "XR_FB_touch_controller_proximity\0",
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu "XR_FB_touch_controller_pro\0",
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu "XR_META_touch_controller_plus\0",
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu "XR_FB_haptic_amplitude_envelope\0",
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu "XR_FB_haptic_pcm\0",
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu "XR_FB_spatial_entity_user\0",
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu "XR_META_feature_fidelity\0",
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu "XR_FB_composition_layer_depth_test\0",
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu "XR_META_virtual_keyboard\0",
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu "XR_META_headset_id\0",
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu "XR_META_recommended_layer_resolution\0",
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu "XR_META_automatic_layer_filter\0",
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu ],
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu}
|
||||||
|
25874 25910 V OpenXR-Loader: Verbose [GENERAL | xrEnumerateApiLayerProperties | OpenXR-Loader] : Entering loader trampoline
|
||||||
|
25874 25910 V OpenXR-Loader: Verbose [GENERAL | FindLayerLibraries | OpenXR-Loader] : searching for layers in /data/app/~~HX0xG_Hcezzhp_rQ8DLibQ==/org.bevyengine.demo_openxr_android-9DYAk0Wd15ZqQ9imRrrOHA==/lib/arm64
|
||||||
|
25874 25910 V OpenXR-Loader: Verbose [GENERAL | xrEnumerateApiLayerProperties | OpenXR-Loader] : Entering loader trampoline
|
||||||
|
25874 25910 V OpenXR-Loader: Verbose [GENERAL | FindLayerLibraries | OpenXR-Loader] : searching for layers in /data/app/~~HX0xG_Hcezzhp_rQ8DLibQ==/org.bevyengine.demo_openxr_android-9DYAk0Wd15ZqQ9imRrrOHA==/lib/arm64
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu available xr layers: []
|
||||||
|
25874 25910 V OpenXR-Loader: Verbose [GENERAL | xrCreateInstance | OpenXR-Loader] : Entering loader trampoline
|
||||||
|
25874 25910 V OpenXR-Loader: Verbose [GENERAL | FindLayerLibraries | OpenXR-Loader] : searching for layers in /data/app/~~HX0xG_Hcezzhp_rQ8DLibQ==/org.bevyengine.demo_openxr_android-9DYAk0Wd15ZqQ9imRrrOHA==/lib/arm64
|
||||||
|
25874 25910 V OpenXR-Loader: Verbose [GENERAL | xrCreateInstance | OpenXR-Loader] : Entering LoaderInstance::CreateInstance
|
||||||
|
25874 25910 V OpenXR-Loader: Verbose [GENERAL | xrCreateInstance | OpenXR-Loader] : Entering loader terminator
|
||||||
|
25874 25910 I OpenXR : ----------- xrCreateInstance [start] ----------
|
||||||
|
25874 25910 I OpenXR : xrCreateInstance: Extension XR_KHR_android_create_instance enabled.
|
||||||
|
25874 25910 I OpenXR : xrCreateInstance: Extension XR_KHR_vulkan_enable2 enabled.
|
||||||
|
25874 25910 I VersionGater: App OpenXR version is 1.0.25
|
||||||
|
25874 25910 I VersionGater: Version gate state: 1111 1000 0
|
||||||
|
25874 25910 W VrRuntimeClient: InitDeviceConfig called before service connection! GKs checked before service connection will return defaults!
|
||||||
|
25874 25910 I TREX : Initializing TREX for client c56f4dcb3ab1079f...
|
||||||
|
25874 25910 I TREX : Initializing system...
|
||||||
|
25874 25910 I XrRuntimeSystem_Client: BodyPoweredHands checkSysPropForBodyAPIOverride 0
|
||||||
|
25874 25910 I TREX : Created plugin package context for com.oculus.systemdriver
|
||||||
|
25874 25910 I RuntimeIPCClient [RUNTIMEIPC]: Event buffer size (client): 8192
|
||||||
|
25874 25910 I RuntimeIPCClient [RUNTIMEIPC]: TryToGetIPCResourcesFromServer: RPC_CONNECTOR_CONNECT_TO_SERVER SUCCESS: Client: org.bevyengine.demo_openxr_android:org.bevyengine.demo_openxr_android:25874, Server: com.oculus.systemdriver:com.oculus.vrruntimeservice (HapticsServer)
|
||||||
|
25874 25910 I RuntimeIPCClient [RUNTIMEIPC]: EnsureServerConnection: SUCCESS. Client: org.bevyengine.demo_openxr_android:org.bevyengine.demo_openxr_android:25874, Server: com.oculus.systemdriver:com.oculus.vrruntimeservice (HapticsServer)
|
||||||
|
25874 25910 I RuntimeIPCClient [RUNTIMEIPC]: ConnectToServer: SUCCESS: Client: org.bevyengine.demo_openxr_android:org.bevyengine.demo_openxr_android:25874, Server: com.oculus.systemdriver:com.oculus.vrruntimeservice (HapticsServer)
|
||||||
|
25874 25910 I TREX : Loading plugin com.oculus.wearableinputservice:libtrex_wristband_client_plugin.so
|
||||||
|
25874 25910 I TREX : package 'com.oculus.wearableinputservice' not found, skipping
|
||||||
|
25874 25910 I TREX : Plugin 'com.oculus.wearableinputservice:libtrex_wristband_client_plugin.so' not loaded.
|
||||||
|
25874 25910 I PerformanceManagerInterface_Impl: perfmgr: Skipping initial server state initialization, will initialize next time around
|
||||||
|
25874 25910 E TREX : Interface version 3 was not found. Check debug build for more information.
|
||||||
|
25874 25910 I DeviceProperties: ovrDeviceProperties::Initialize
|
||||||
|
25874 25910 I DeviceProperties: Device Region: 'US'
|
||||||
|
25874 25910 I DeviceProperties: GPU Type: 'ADRENO_650'
|
||||||
|
25874 25910 I DeviceProperties: Num Refresh Rates Supported 61
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (0): 120.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (1): 119.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (2): 118.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (3): 117.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (4): 116.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (5): 115.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (6): 114.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (7): 113.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (8): 112.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (9): 111.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (10): 110.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (11): 109.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (12): 108.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (13): 107.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (14): 106.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (15): 105.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (16): 104.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (17): 103.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (18): 102.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (19): 101.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (20): 100.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (21): 99.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (22): 98.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (23): 97.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (24): 96.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (25): 95.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (26): 94.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (27): 93.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (28): 92.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (29): 91.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (30): 90.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (31): 89.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (32): 88.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (33): 87.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (34): 86.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (35): 85.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (36): 84.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (37): 83.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (38): 82.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (39): 81.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (40): 80.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (41): 79.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (42): 78.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (43): 77.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (44): 76.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (45): 75.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (46): 74.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (47): 73.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (48): 72.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (49): 71.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (50): 70.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (51): 69.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (52): 68.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (53): 67.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (54): 66.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (55): 65.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (56): 64.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (57): 63.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (58): 62.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (59): 61.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: Refresh Rate (60): 60.000000Hz
|
||||||
|
25874 25910 I DeviceProperties: DisplayParms.ScanoutDirection = 1
|
||||||
|
25874 25910 I DeviceProperties: DisplayParms.ShutterType = 1
|
||||||
|
25874 25874 W Thread-2: type=1400 audit(0.0:287): avc: denied { read } for name="u:object_r:vendor_board_init_prop:s0" dev="tmpfs" ino=12449 scontext=u:r:untrusted_app:s0:c60,c256,c512,c768 tcontext=u:object_r:vendor_board_init_prop:s0 tclass=file permissive=0 app=org.bevyengine.demo_openxr_android
|
||||||
|
25874 25910 W libc : Access denied finding property "ro.vendor.product.model_extended"
|
||||||
|
25874 25910 I DeviceProperties: getDisplayDimensions returned: 3664, 1920
|
||||||
|
25874 25910 I DeviceProperties: ovrDeviceProperties: OVR_DEVICE_CAPABILITY_POSITIONAL_TRACKING_BIT
|
||||||
|
25874 25910 I DeviceProperties: ovrDeviceProperties: OVR_DEVICE_CAPABILITY_PASSTHROUGH_CAMERA_BIT
|
||||||
|
25874 25910 I DeviceProperties: ovrDeviceProperties: OVR_DEVICE_CAPABILITY_DYNAMIC_DISPLAY_REFRESH_RATE_BIT
|
||||||
|
25874 25910 I DeviceProperties: ovrDeviceProperties: OVR_DEVICE_CAPABILITY_MEMORY_EXPORT_BIT
|
||||||
|
25874 25910 I DeviceProperties: ovrDeviceProperties: OVR_DEVICE_CAPABILITY_FIXED_FOVEATED_RENDERING_BIT
|
||||||
|
25874 25910 I DeviceProperties: ovrDeviceProperties: OVR_DEVICE_CAPABILITY_SUBSAMPLED_LAYOUT_BIT
|
||||||
|
25874 25910 I DeviceProperties: ovrDeviceProperties: OVR_DEVICE_CAPABILITY_KEYBOARD_TRACKING_BIT
|
||||||
|
25874 25910 I VrRuntimeClient: DevicesSupported : 3 devices, quest|quest2|quest3
|
||||||
|
25874 25910 I Distortion: Initializing Mesh Decenter Correction
|
||||||
|
25874 25910 I Distortion: SetLensPositions - iad=0.06485, left offset=0.000465658,-0.00151258, right offset=-0.000983495,-0.00165948
|
||||||
|
25874 25910 I Distortion: Initializing Mesh Decenter Correction
|
||||||
|
25874 25910 I Distortion: SetLensPositions - iad=0.06485, left offset=0.000465658,-0.00151258, right offset=-0.000983495,-0.00165948
|
||||||
|
25874 25910 I OpenXR : ----------- xrCreateInstance [end] ----------
|
||||||
|
25874 25910 V OpenXR-Loader: Verbose [GENERAL | xrCreateInstance | OpenXR-Loader] : Completed loader terminator
|
||||||
|
25874 25910 I OpenXR-Loader: Info [GENERAL | xrCreateInstance | OpenXR-Loader] : LoaderInstance::CreateInstance succeeded with 0 layers enabled and runtime interface - created instance = 0x0100000000000001
|
||||||
|
25874 25910 V OpenXR-Loader: Verbose [GENERAL | xrCreateInstance | OpenXR-Loader] : Completed loader trampoline
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu created instance
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu created system
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu loaded OpenXR runtime: Oculus 57.295.0 Oculus Quest2
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu creating vulkan instance with these extensions: [
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu "VK_KHR_surface",
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu "VK_KHR_android_surface",
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu "VK_EXT_swapchain_colorspace",
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu "VK_KHR_get_physical_device_properties2",
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu]
|
||||||
|
25874 25910 I AdrenoVK-0: ===== BEGIN DUMP OF OVERRIDDEN SETTINGS =====
|
||||||
|
25874 25910 I AdrenoVK-0: ===== END DUMP OF OVERRIDDEN SETTINGS =====
|
||||||
|
25874 25910 I AdrenoVK-0: QUALCOMM build : fa5d856e9e, I160a5475da
|
||||||
|
25874 25910 I AdrenoVK-0: Build Date : 07/24/23
|
||||||
|
25874 25910 I AdrenoVK-0: Shader Compiler Version : E031.42.07.00
|
||||||
|
25874 25910 I AdrenoVK-0: Local Branch :
|
||||||
|
25874 25910 I AdrenoVK-0: Remote Branch :
|
||||||
|
25874 25910 I AdrenoVK-0: Remote Branch :
|
||||||
|
25874 25910 I AdrenoVK-0: Reconstruct Branch :
|
||||||
|
25874 25910 I AdrenoVK-0: Build Config : S P 10.0.7 AArch64
|
||||||
|
25874 25910 I AdrenoVK-0: Driver Path : /vendor/lib64/hw/vulkan.adreno.so
|
||||||
|
25874 25910 I AdrenoVK-0: Driver Version : 0728.0
|
||||||
|
25874 25910 I AdrenoVK-0: PFP : 0x016dd112
|
||||||
|
25874 25910 I AdrenoVK-0: ME : 0x00000000
|
||||||
|
25874 25910 I AdrenoVK-0: Application Name : Ambient
|
||||||
|
25874 25910 I AdrenoVK-0: Application Version : 0x00000001
|
||||||
|
25874 25910 I AdrenoVK-0: Engine Name : Ambient
|
||||||
|
25874 25910 I AdrenoVK-0: Engine Version : 0x00000001
|
||||||
|
25874 25910 I AdrenoVK-0: Api Version : 0x00401000
|
||||||
|
25874 25910 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/graphics/vu created vulkan instance
|
||||||
|
25874 25910 I VulkanLoader: ovrVulkanLoader::Load
|
||||||
|
25874 25910 W VulkanLoader: VulkanLoader::LoadInstanceFunctions: Failed to load vkCreateDebugReportCallbackEXT, likely vkInstance created without xrGetVulkanInstanceExtensionsKHR/vrapi_GetInstanceExtensionsVulkan
|
||||||
|
25874 25910 W VulkanLoader: VulkanLoader::LoadInstanceFunctions: Failed to load vkDestroyDebugReportCallbackEXT, likely vkInstance created without xrGetVulkanInstanceExtensionsKHR/vrapi_GetInstanceExtensionsVulkan
|
||||||
|
25874 25910 W VulkanLoader: ovrVulkanLoader::LoadDeviceFunctions: device invalid
|
||||||
|
25874 25910 W VulkanLoader: ovrVulkanLoader::LoadExtensionList: physicalDevice invalid
|
||||||
|
25874 25910 I Vulkan_Utils: --------------------------------
|
||||||
|
25874 25910 I Vulkan_Utils: Device Name : Adreno (TM) 650
|
||||||
|
25874 25910 I Vulkan_Utils: Device Type : integrated GPU
|
||||||
|
25874 25910 I Vulkan_Utils: Vendor ID : 0x5143
|
||||||
|
25874 25910 I Vulkan_Utils: Device ID : 0x6050002
|
||||||
|
25874 25910 I Vulkan_Utils: Driver Version : 512.728.0
|
||||||
|
25874 25910 I Vulkan_Utils: API Version : 1.1.128
|
||||||
|
25874 25910 I Vulkan_Utils: Queue Families : 0 = graphics compute (3 queues, 3 priorities)
|
||||||
|
25874 25910 I Vulkan_Utils: Work Queue Family : 0
|
||||||
|
25874 25910 I Vulkan_Utils: Device Extensions : VK_KHR_swapchain (required, enabled)
|
||||||
|
25874 25910 I Vulkan_Utils: VK_KHR_external_memory (required, enabled)
|
||||||
|
25874 25910 I Vulkan_Utils: VK_KHR_get_memory_requirements2 (required, enabled)
|
||||||
|
25874 25910 I Vulkan_Utils: Device Extensions VK_EXT_fragment_density_map (optional, enabled)
|
||||||
|
25874 25910 I Vulkan_Utils: VK_EXT_fragment_density_map2 (optional, enabled)
|
||||||
|
25874 25910 I Vulkan_Utils: VK_KHR_maintenance1 (optional, enabled)
|
||||||
|
25874 25910 I Vulkan_Utils: VK_KHR_bind_memory2 (optional, enabled)
|
||||||
|
25874 25910 I Vulkan_Utils: VK_KHR_sampler_ycbcr_conversion (optional, enabled)
|
||||||
|
25874 25910 I Vulkan_Utils: VK_EXT_queue_family_foreign (optional, enabled)
|
||||||
|
25874 25910 I Vulkan_Utils: VK_KHR_dedicated_allocation (optional, enabled)
|
||||||
|
25874 25910 I Vulkan_Utils: VK_KHR_external_memory_fd (optional, enabled)
|
||||||
|
25874 25910 I Vulkan_Utils: VK_ANDROID_external_memory_android_hardware_buffer (optional, enabled)
|
||||||
|
25874 25910 I OpenXR : ------------ xrCreateSession [start] -----------
|
||||||
|
25874 25910 I RuntimeIPCClient [RUNTIMEIPC]: Event buffer size (client): 8192
|
||||||
|
25874 25910 I RuntimeIPCClient [RUNTIMEIPC]: TryToGetIPCResourcesFromServer: RPC_CONNECTOR_CONNECT_TO_SERVER SUCCESS: Client: org.bevyengine.demo_openxr_android:org.bevyengine.demo_openxr_android:25874, Server: com.oculus.systemdriver:com.oculus.vrruntimeservice (RuntimeServiceServer)
|
||||||
|
25874 25910 I VrRuntimeClient: g_RuntimeServiceSDKClient.Connected: com.oculus.systemdriver:com.oculus.vrruntimeservice
|
||||||
|
25874 25910 I VrRuntimeClient: RuntimeIPC: ServiceConnected: SharedMemoryDebug: publicReadOnly SharedMemorySize=8744 () sizeof(sharedMemoryPublicReadOnly)=8768
|
||||||
|
25874 25910 I VrRuntimeClient: RuntimeIPC: ServiceConnected: SharedMemoryDebug: privateReadWrite SharedMemorySize=40352 () sizeof(privateSharedMemorySize)=8
|
||||||
|
25874 25910 I VrRuntimeClient: nativeRuntimeServiceConnected: SharedMemoryDebug: publicReadOnlyFd=95, privateReadWriteFd=96 ()
|
||||||
|
25874 25910 I RuntimeIPCClient [RUNTIMEIPC]: EnsureServerConnection: SUCCESS. Client: org.bevyengine.demo_openxr_android:org.bevyengine.demo_openxr_android:25874, Server: com.oculus.systemdriver:com.oculus.vrruntimeservice (RuntimeServiceServer)
|
||||||
|
25874 25910 I RuntimeIPCClient [RUNTIMEIPC]: ConnectToServer: SUCCESS: Client: org.bevyengine.demo_openxr_android:org.bevyengine.demo_openxr_android:25874, Server: com.oculus.systemdriver:com.oculus.vrruntimeservice (RuntimeServiceServer)
|
||||||
|
25874 25910 I VrRuntimeClient: g_RuntimeServiceSDKClient.InitClient SUCCESS. Version: 5.0, Custom: 1.0
|
||||||
|
25874 25910 I RuntimeIPCClientMgr [RUNTIMEIPC]: GetClientOptions
|
||||||
|
25874 25910 I OpenXR : xrCreateSession: Connected to VrRuntimeService after 0.038652s
|
||||||
|
25874 25910 I AdrenoGLES-0: QUALCOMM build : fa5d856e9e, I160a5475da
|
||||||
|
25874 25910 I AdrenoGLES-0: Build Date : 07/24/23
|
||||||
|
25874 25910 I AdrenoGLES-0: OpenGL ES Shader Compiler Version: E031.42.07.00
|
||||||
|
25874 25910 I AdrenoGLES-0: Local Branch :
|
||||||
|
25874 25910 I AdrenoGLES-0: Remote Branch :
|
||||||
|
25874 25910 I AdrenoGLES-0: Remote Branch :
|
||||||
|
25874 25910 I AdrenoGLES-0: Reconstruct Branch :
|
||||||
|
25874 25910 I AdrenoGLES-0: Build Config : S P 10.0.7 AArch64
|
||||||
|
25874 25910 I AdrenoGLES-0: Driver Path : /vendor/lib64/egl/libGLESv2_adreno.so
|
||||||
|
25874 25910 I AdrenoGLES-0: Driver Version : 0728.0
|
||||||
|
25874 25910 I AdrenoGLES-0: Process Name : org.bevyengine.demo_openxr_android
|
||||||
|
25874 25910 I AdrenoGLES-0: PFP: 0x016dd112, ME: 0x00000000
|
||||||
|
25874 25910 I VrRuntimeClient: SetPhaseSyncMode 1
|
||||||
|
25874 25910 I VrRuntimeClient: SetPhaseSyncMode 1
|
||||||
|
25874 25910 I OpenXR : PhaseSync Mode: 1
|
||||||
|
25874 25910 I VrRuntimeClient: VrRuntimeClient: Init
|
||||||
|
25874 25910 I PTKService: PTKServiceClient Init
|
||||||
|
25874 25910 I ClientProcessConnector [RUNTIMEIPC]: GetProcessConnection: com.oculus.vrshell:com.oculus.vrshell:Overlay
|
||||||
|
25874 25910 I RuntimeIPCClient [RUNTIMEIPC]: Event buffer size (client): 8192
|
||||||
|
25874 25910 I RuntimeIPCClient [RUNTIMEIPC]: TryToGetIPCResourcesFromServer: RPC_CONNECTOR_CONNECT_TO_SERVER SUCCESS: Client: org.bevyengine.demo_openxr_android:org.bevyengine.demo_openxr_android:25874, Server: com.oculus.vrshell:com.oculus.vrshell:Overlay (ptkserviceserver)
|
||||||
|
25874 25910 I RuntimeIPCClient [RUNTIMEIPC]: EnsureServerConnection: SUCCESS. Client: org.bevyengine.demo_openxr_android:org.bevyengine.demo_openxr_android:25874, Server: com.oculus.vrshell:com.oculus.vrshell:Overlay (ptkserviceserver)
|
||||||
|
25874 25910 I RuntimeIPCClient [RUNTIMEIPC]: ConnectToServer: SUCCESS: Client: org.bevyengine.demo_openxr_android:org.bevyengine.demo_openxr_android:25874, Server: com.oculus.vrshell:com.oculus.vrshell:Overlay (ptkserviceserver)
|
||||||
|
25874 25910 I RuntimeIPCClient [RUNTIMEIPC]: InitServerStateBuffer: SUCCESS. 0, Client: org.bevyengine.demo_openxr_android:org.bevyengine.demo_openxr_android:25874, Server: com.oculus.vrshell:com.oculus.vrshell:Overlay (ptkserviceserver)
|
||||||
|
25874 25910 V OVR::Capture: Failed to open trace_marker ATrace file!
|
||||||
|
25874 25910 I RuntimeIPCClient [RUNTIMEIPC]: InitServerStateBuffer: SUCCESS. 0, Client: org.bevyengine.demo_openxr_android:org.bevyengine.demo_openxr_android:25874, Server: com.oculus.systemdriver:com.oculus.vrruntimeservice (RuntimeServiceServer)
|
||||||
|
25874 25910 I VrRuntimeClient: OSSDKTRACKING calculating secure tracking
|
||||||
|
25874 25910 I VrRuntimeClient: OSSDKTRACKING secure tracking is 0
|
||||||
|
25874 25910 I AudioCapture: AudioCapture::Init
|
||||||
|
25874 25910 I AudioCapture: AudioCapture::Init -> Initializing audio capture using direct OS Callbacks
|
||||||
|
25874 25910 I AudioCapture: AudioCapture::Init COMPLETE
|
||||||
|
25874 25910 I Foveation: Vulkan foveation tile offset enabled: 0
|
||||||
|
25874 25910 I Foveation: Vulkan foveation tile turn off enabled: 1
|
||||||
|
25874 25910 I ClientProcessConnector [RUNTIMEIPC]: GetProcessConnection: com.oculus.guardian:com.oculus.vrguardianservice
|
||||||
|
25874 25910 I RuntimeIPCClient [RUNTIMEIPC]: Event buffer size (client): 8192
|
||||||
|
25874 25910 I RuntimeIPCClient [RUNTIMEIPC]: TryToGetIPCResourcesFromServer: RPC_CONNECTOR_CONNECT_TO_SERVER SUCCESS: Client: org.bevyengine.demo_openxr_android:org.bevyengine.demo_openxr_android:25874, Server: com.oculus.guardian:com.oculus.vrguardianservice (guardianserver)
|
||||||
|
25874 25910 I RuntimeIPCClient [RUNTIMEIPC]: EnsureServerConnection: SUCCESS. Client: org.bevyengine.demo_openxr_android:org.bevyengine.demo_openxr_android:25874, Server: com.oculus.guardian:com.oculus.vrguardianservice (guardianserver)
|
||||||
|
25874 25910 I RuntimeIPCClient [RUNTIMEIPC]: ConnectToServer: SUCCESS: Client: org.bevyengine.demo_openxr_android:org.bevyengine.demo_openxr_android:25874, Server: com.oculus.guardian:com.oculus.vrguardianservice (guardianserver)
|
||||||
|
25874 25910 I VrGuardianClient: g_GuardianSDKClient connected.
|
||||||
|
25874 25910 I VrRuntimeClient: Is120HzSupported: 1
|
||||||
|
25874 25910 I FaceEyeTrackingManagerHelpers: [FaceEyeTrackingManager] Audio FT GK: 0
|
||||||
|
25874 25910 I LogTimer: CPUTIME: VrRuntimeClient_Init took 170.6461 ms
|
||||||
|
25874 25910 I VulkanLoader: ovrVulkanLoader::Load
|
||||||
|
25874 25910 W VulkanLoader: VulkanLoader::LoadInstanceFunctions: Failed to load vkCreateDebugReportCallbackEXT, likely vkInstance created without xrGetVulkanInstanceExtensionsKHR/vrapi_GetInstanceExtensionsVulkan
|
||||||
|
25874 25910 W VulkanLoader: VulkanLoader::LoadInstanceFunctions: Failed to load vkDestroyDebugReportCallbackEXT, likely vkInstance created without xrGetVulkanInstanceExtensionsKHR/vrapi_GetInstanceExtensionsVulkan
|
||||||
|
25874 25910 W VulkanLoader: VulkanLoader::LoadDeviceFunctions: Failed to load vkCmdDebugMarkerInsertEXT, likely vkDevice created without xrGetVulkanDeviceExtensionsKHR/vrapi_GetDeviceExtensionsVulkan
|
||||||
|
25874 25910 W VulkanLoader: VulkanLoader::LoadDeviceFunctions: Failed to load vkDebugMarkerSetObjectTagEXT, likely vkDevice created without xrGetVulkanDeviceExtensionsKHR/vrapi_GetDeviceExtensionsVulkan
|
||||||
|
25874 25910 W VulkanLoader: VulkanLoader::LoadDeviceFunctions: Failed to load vkGetMemoryFdKHR, likely vkDevice created without xrGetVulkanDeviceExtensionsKHR/vrapi_GetDeviceExtensionsVulkan
|
||||||
|
25874 25910 I Foveation: Vulkan FFR is supported, with density map size 32x32
|
||||||
|
25874 25910 I Distortion: Initializing Mesh Decenter Correction
|
||||||
|
25874 25910 I Distortion: SetLensPositions - iad=0.06485, left offset=0.000465658,-0.00151258, right offset=-0.000983495,-0.00165948
|
||||||
|
25874 25910 I Distortion: Initializing Mesh Decenter Correction
|
||||||
|
25874 25910 I Distortion: SetLensPositions - iad=0.06485, left offset=0.000465658,-0.00151258, right offset=-0.000983495,-0.00165948
|
||||||
|
25874 25910 I GkHelper: Checking gk 'oculus_miramar_colorspace_p3', default = false
|
||||||
|
25874 25910 I Colorspace: Miramar default OpenXR colorspace via GK: <default>
|
||||||
|
25874 25910 I ClientInputSettings: SYSTEMBUTTONSPACE GKS freeze '1'
|
||||||
|
25874 25910 I ClientInputSettings: SYSTEMBUTTONSPACE 'org.bevyengine.demo_openxr_android' Freeze input '1' on home button down
|
||||||
|
25874 25910 I ClientInputSettings: HANDTRACKING: Hands V2.0 enforced.
|
||||||
|
25874 25910 I ClientInputSettings: HANDTRACKING: YES, in the GK oculus_mobile_enable_hand_tracking_frequency_inter
|
||||||
|
25874 25910 I ClientInputInterface: HANDTRACKING sethandtrackingfrequency 1
|
||||||
|
25874 25910 I ClientInputSettings: HANDTRACKING: YES, in the GK oculus_mobile_30hz_handtracking_downclocking
|
||||||
|
25874 25910 I ClientInputInterface: Set30HzHandtrackingDownclockingGKFlag 1
|
||||||
|
25874 25910 I ClientInputSettings: HANDTRACKING: NO, not in the GK oculus_mobile_enable_hand_emulation_of_controllers
|
||||||
|
25874 25910 I ClientInputInterface: HANDTRACKING SetHandTrackingControllerEmulationGkFlag 0
|
||||||
|
25874 25910 I InputHooks: InitializeInputHooks
|
||||||
|
25874 25910 I InputHooks: InitializeInputHooks create
|
||||||
|
25874 25910 I OpenXR : Disable output struct type validation on org.bevyengine.demo_openxr_android.
|
||||||
|
25874 25910 I OpenXR : Disable GetFaceExpressionWeights return code fix on org.bevyengine.demo_openxr_android.
|
||||||
|
25874 25910 I OpenXR : Disable HandJointPalmFix on org.bevyengine.demo_openxr_android.
|
||||||
|
25874 25910 I OpenXR : xrCreateSession: Activity is not yet in the ready state.
|
||||||
|
25874 25910 I XrRuntimeUtils: XrRuntimeUtils::CreateSession
|
||||||
|
25874 25910 I OpenXR : ------------ xrCreateSession [end] -----------
|
||||||
|
25874 25910 I SwapChain_Vulkan_Memory_Export: Imported texture has requirements 3, ends up index 0
|
||||||
|
25874 25910 I SwapChain_Vulkan_Memory_Export: Imported texture has requirements 3, ends up index 0
|
||||||
|
25874 25910 I SwapChain_Vulkan_Memory_Export: Imported texture has requirements 3, ends up index 0
|
||||||
|
25874 25910 I OpenXR_Space: xrCreateReferenceSpace: Spaces info
|
||||||
|
25874 25910 I OpenXR_Space: xrCreateReferenceSpace: Local version=50
|
||||||
|
25874 25910 I OpenXR_Space: xrCreateReferenceSpace: RawFromLocal = (0.000, 0.471, 0.000, 0.882), (0.05, -0.10, -0.17)
|
||||||
|
25874 25910 I OpenXR_Space: xrCreateReferenceSpace: RawFromLocalTilted = (-0.051, 0.473, 0.089, 0.875), (0.05, -0.10, -0.17)
|
||||||
|
25874 25910 I OpenXR_Space: xrCreateReferenceSpace: Stage IsValid=true
|
||||||
|
25874 25910 I OpenXR_Space: xrCreateReferenceSpace: Stage HasActiveGuardian=true
|
||||||
|
25874 25910 I OpenXR_Space: xrCreateReferenceSpace: Stage Width=4.762031, Depth=4.001124
|
||||||
|
25874 25910 I OpenXR_Space: xrCreateReferenceSpace: RawFromStage = (0.000, 0.665, 0.000, 0.747), (0.12, -0.77, 1.23)
|
||||||
|
25874 25910 I OboeAudio: openStream() OUTPUT -------- OboeVersion1.7.0 --------
|
||||||
|
25874 25910 I AAudio : AAudioStreamBuilder_openStream() called ----------------------------------------
|
||||||
|
25874 25910 I AudioStreamBuilder: rate = 44100, channels = 2, channelMask = 0x80000003, format = 5, sharing = SH, dir = OUTPUT
|
||||||
|
25874 25910 I AudioStreamBuilder: device = 0, sessionId = -1, perfMode = 10, callback: ON with frames = 0
|
||||||
|
25874 25910 I AudioStreamBuilder: usage = 1, contentType = 2, inputPreset = 6, allowedCapturePolicy = 0
|
||||||
|
25874 25910 I AudioStreamBuilder: privacy sensitive = false
|
||||||
|
25874 25910 I AudioStreamBuilder: opPackageName = (null)
|
||||||
|
25874 25910 I AudioStreamBuilder: attributionTag = (null)
|
||||||
|
25874 25910 D AudioStreamBuilder: build() [meta] disable aaudio mmap via gk
|
||||||
|
25874 25910 D AudioStreamBuilder: build() MMAP not used because AAUDIO_PERFORMANCE_MODE_LOW_LATENCY not requested.
|
||||||
|
25874 25910 D _openxr_androi: PlayerBase::PlayerBase()
|
||||||
|
25874 25910 D AudioStreamTrack: open(), request notificationFrames = 0, frameCount = 0
|
||||||
|
25874 25910 D AAudioStream: setState(s#1) from 0 to 2
|
||||||
|
25874 25910 I AAudio : AAudioStreamBuilder_openStream() returns 0 = AAUDIO_OK for s#1 ----------------
|
||||||
|
25874 25910 D AAudio : AAudioStream_requestStart(s#1) called --------------
|
||||||
|
25874 25910 D AAudioStream: setState(s#1) from 2 to 3
|
||||||
|
25874 25891 D AudioStreamLegacy: onAudioDeviceUpdate(deviceId = 2)
|
||||||
|
25874 25910 D AAudio : AAudioStream_requestStart(s#1) returned 0 ---------
|
||||||
|
25874 25910 E event /home/schmarni/.cargo/git/checkouts/bevy-f7ffde730c324c74/d67fbd5/crates/bevy_gilrs/src/ Failed to start Gilrs. Gilrs does not support current platform.
|
||||||
|
25874 25937 D AAudioStream: setState(s#1) from 3 to 4
|
||||||
|
25874 25910 W event /home/schmarni/.cargo/git/checkouts/bevy-f7ffde730c324c74/d67fbd5/crates/bevy_pbr/src/ss ScreenSpaceAmbientOcclusionPlugin not loaded. GPU lacks support: Limits::max_storage_textures_per_shader_stage is less than 5.
|
||||||
|
25874 25913 I OpenXR_Actions: -- xrSuggestInteractionProfileBindings -
|
||||||
|
25874 25914 I event /home/schmarni/.cargo/git/checkouts/bevy-f7ffde730c324c74/d67fbd5/crates/bevy_diagnostic SystemInfo { os: "Android 12 Quest 2", kernel: "4.19.157+", cpu: "", core_count: "8", memory: "5.7 GiB" }
|
||||||
|
25874 25913 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=19, action=hand_pose, subactionMask=1, pathActionType=4
|
||||||
|
25874 25913 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=35, action=hand_pose, subactionMask=2, pathActionType=4
|
||||||
|
25874 25913 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=18, action=pointer_pose, subactionMask=1, pathActionType=4
|
||||||
|
25874 25913 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=9, action=squeeze, subactionMask=1, pathActionType=2
|
||||||
|
25874 25913 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=25, action=squeeze, subactionMask=2, pathActionType=2
|
||||||
|
25874 25913 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=26, action=trigger, subactionMask=2, pathActionType=2
|
||||||
|
25874 25913 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=10, action=trigger, subactionMask=1, pathActionType=2
|
||||||
|
25874 25913 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=27, action=trigger_touched, subactionMask=2, pathActionType=1
|
||||||
|
25874 25913 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=11, action=trigger_touched, subactionMask=1, pathActionType=1
|
||||||
|
25874 25913 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=33, action=haptic_feedback, subactionMask=2, pathActionType=100
|
||||||
|
25874 25913 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=17, action=haptic_feedback, subactionMask=1, pathActionType=100
|
||||||
|
25874 25913 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=4, action=x_button, subactionMask=1, pathActionType=1
|
||||||
|
25874 25913 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=5, action=x_button_touch, subactionMask=1, pathActionType=1
|
||||||
|
25874 25913 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=6, action=y_button, subactionMask=1, pathActionType=1
|
||||||
|
25874 25913 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=7, action=y_button_touch, subactionMask=1, pathActionType=1
|
||||||
|
25874 25913 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=8, action=menu_button, subactionMask=1, pathActionType=1
|
||||||
|
25874 25913 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=20, action=a_button, subactionMask=2, pathActionType=1
|
||||||
|
25874 25913 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=21, action=a_button_touch, subactionMask=2, pathActionType=1
|
||||||
|
25874 25913 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=22, action=b_button, subactionMask=2, pathActionType=1
|
||||||
|
25874 25913 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=23, action=b_button_touch, subactionMask=2, pathActionType=1
|
||||||
|
25874 25913 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=12, action=thumbstick_x, subactionMask=1, pathActionType=2
|
||||||
|
25874 25913 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=28, action=thumbstick_x, subactionMask=2, pathActionType=2
|
||||||
|
25874 25913 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=13, action=thumbstick_y, subactionMask=1, pathActionType=2
|
||||||
|
25874 25913 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=29, action=thumbstick_y, subactionMask=2, pathActionType=2
|
||||||
|
25874 25913 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=14, action=thumbstick_click, subactionMask=1, pathActionType=1
|
||||||
|
25874 25913 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=30, action=thumbstick_click, subactionMask=2, pathActionType=1
|
||||||
|
25874 25913 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=15, action=thumbstick_touch, subactionMask=1, pathActionType=1
|
||||||
|
25874 25913 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=31, action=thumbstick_touch, subactionMask=2, pathActionType=1
|
||||||
|
25874 25913 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=16, action=thumbrest_touch, subactionMask=1, pathActionType=1
|
||||||
|
25874 25913 I OpenXR_Actions: xrSuggestInteractionProfileBindings: adding binding actionPathBinding=32, action=thumbrest_touch, subactionMask=2, pathActionType=1
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25914 I JniUtils-inl: Creating temporary JNIEnv. This is a heavy operation and should be infrequent. To optimize, use JNI AttachCurrentThread on calling thread
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25913 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/xr_input/tr we got a new tracker
|
||||||
|
25874 25914 I OpenXR : PostSessionStateChange: XR_SESSION_STATE_UNKNOWN -> XR_SESSION_STATE_IDLE
|
||||||
|
25874 25914 I Deque : AddEventToQueue called. eventInfo.type: 18, eventInfo.next: 1
|
||||||
|
25874 25914 I event /home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/lib.rs:240: entered XR state IDLE
|
||||||
|
25874 25914 W OpenXR : xrWaitFrame: session is not running.
|
||||||
|
25874 25909 I RustStdoutStderr: [31mThe application panicked (crashed).[0m
|
||||||
|
25874 25909 I RustStdoutStderr: Message: [36mcalled `Result::unwrap()` on an `Err` value: ERROR_SESSION_NOT_RUNNING[0m
|
||||||
|
25874 25909 I RustStdoutStderr: Location: [35m/home/schmarni/.cargo/git/checkouts/bevy_openxr-f302a4e0d5df4607/08d5708/src/lib.rs[0m:[35m264[0m
|
||||||
|
25874 25909 I RustStdoutStderr:
|
||||||
|
25874 25909 I RustStdoutStderr: Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
|
||||||
|
25874 25909 I RustStdoutStderr: Run with RUST_BACKTRACE=full to include source snippets.
|
||||||
|
25874 25909 I RustStdoutStderr: Warning: SpanTrace capture is Unsupported.
|
||||||
|
25874 25909 I RustStdoutStderr: Ensure that you've setup a tracing-error ErrorLayer and the semver versions are compatible
|
||||||
|
--------- beginning of crash
|
||||||
|
|
||||||
|
25874 25914 F libc : Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 25914 (Compute Task Po), pid 25874 (_openxr_android)
|
||||||
|
25943 25943 I crash_dump64: obtaining output fd from tombstoned, type: kDebuggerdTombstoneProto
|
||||||
|
25943 25943 I crash_dump64: performing dump of process 25874 (target tid = 25914)
|
||||||
|
25943 25943 I DEBUG : Current uptime at crash: 158996 seconds
|
||||||
|
25943 25943 F DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
|
||||||
|
25943 25943 F DEBUG : Build fingerprint: 'oculus/hollywood/hollywood:12/SQ3A.220605.009.A1/50623410078100150:user/release-keys'
|
||||||
|
25943 25943 F DEBUG : Revision: '0'
|
||||||
|
25943 25943 F DEBUG : ABI: 'arm64'
|
||||||
|
25943 25943 F DEBUG : Timestamp: 2023-10-31 22:19:08.803705529+0100
|
||||||
|
25943 25943 F DEBUG : Process uptime: 1s
|
||||||
|
25943 25943 F DEBUG : Cmdline: org.bevyengine.demo_openxr_android
|
||||||
|
25943 25943 F DEBUG : pid: 25874, tid: 25914, name: Compute Task Po >>> org.bevyengine.demo_openxr_android <<<
|
||||||
|
25943 25943 F DEBUG : uid: 10060
|
||||||
|
25943 25943 F DEBUG : signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr --------
|
||||||
|
25943 25943 F DEBUG : Abort message: 'called `Result::unwrap()` on an `Err` value: ERROR_SESSION_NOT_RUNNING'
|
||||||
|
25943 25943 F DEBUG : x0 0000000000000000 x1 000000000000653a x2 0000000000000006 x3 0000007827629b40
|
||||||
|
25943 25943 F DEBUG : x4 0000000000008000 x5 0000000000008000 x6 0000000000008000 x7 0000000000000000
|
||||||
|
25943 25943 F DEBUG : x8 00000000000000f0 x9 00000079424da5d8 x10 0000000000000000 x11 ffffff80fffffbdf
|
||||||
|
25943 25943 F DEBUG : x12 0000000000000001 x13 525f544f4e5f4e4f x14 00000000000000c8 x15 0000000000000038
|
||||||
|
25943 25943 F DEBUG : x16 00000079425a1dc0 x17 000000794257fb60 x18 0000007826e0a000 x19 0000000000006512
|
||||||
|
25943 25943 F DEBUG : x20 000000000000653a x21 00000000ffffffff x22 000000782f82fae0 x23 0000007827629e00
|
||||||
|
25943 25943 F DEBUG : x24 000000782e32c948 x25 000000782f97b198 x26 000000782f97b1b8 x27 000000782762b060
|
||||||
|
25943 25943 F DEBUG : x28 000000782762b060 x29 0000007827629bc0
|
||||||
|
25943 25943 F DEBUG : lr 000000794253bc5c sp 0000007827629b20 pc 000000794253bc8c pst 0000000000001000
|
||||||
|
25943 25943 F DEBUG : backtrace:
|
||||||
|
25943 25943 F DEBUG : #00 pc 0000000000089c8c /apex/com.android.runtime/lib64/bionic/libc.so (abort+168) (BuildId: 9bab48b8427561f041dc114e49bfd38b)
|
||||||
|
25943 25943 F DEBUG : #01 pc 0000000001993834 /data/app/~~HX0xG_Hcezzhp_rQ8DLibQ==/org.bevyengine.demo_openxr_android-9DYAk0Wd15ZqQ9imRrrOHA==/lib/arm64/libdemo.so (panic_abort::__rust_start_panic::abort::hf9486a0d1cc2ac08+4) (BuildId: 5c943a49e7770f56)
|
||||||
|
25943 25943 F DEBUG : #02 pc 0000000001993828 /data/app/~~HX0xG_Hcezzhp_rQ8DLibQ==/org.bevyengine.demo_openxr_android-9DYAk0Wd15ZqQ9imRrrOHA==/lib/arm64/libdemo.so (__rust_start_panic+8) (BuildId: 5c943a49e7770f56)
|
||||||
|
25943 25943 F DEBUG : #03 pc 0000000001985d7c /data/app/~~HX0xG_Hcezzhp_rQ8DLibQ==/org.bevyengine.demo_openxr_android-9DYAk0Wd15ZqQ9imRrrOHA==/lib/arm64/libdemo.so (rust_panic+8) (BuildId: 5c943a49e7770f56)
|
||||||
|
25943 25943 F DEBUG : #04 pc 0000000001985be4 /data/app/~~HX0xG_Hcezzhp_rQ8DLibQ==/org.bevyengine.demo_openxr_android-9DYAk0Wd15ZqQ9imRrrOHA==/lib/arm64/libdemo.so (std::panicking::rust_panic_with_hook::h9c80bfe4d552cb32+660) (BuildId: 5c943a49e7770f56)
|
||||||
|
25943 25943 F DEBUG : #05 pc 0000000001985930 /data/app/~~HX0xG_Hcezzhp_rQ8DLibQ==/org.bevyengine.demo_openxr_android-9DYAk0Wd15ZqQ9imRrrOHA==/lib/arm64/libdemo.so (std::panicking::begin_panic_handler::_$u7b$$u7b$closure$u7d$$u7d$::haece24ab2b06546c+196) (BuildId: 5c943a49e7770f56)
|
||||||
|
25943 25943 F DEBUG : #06 pc 0000000001984310 /data/app/~~HX0xG_Hcezzhp_rQ8DLibQ==/org.bevyengine.demo_openxr_android-9DYAk0Wd15ZqQ9imRrrOHA==/lib/arm64/libdemo.so (std::sys_common::backtrace::__rust_end_short_backtrace::h5255d8dea90e7932+4) (BuildId: 5c943a49e7770f56)
|
||||||
|
25943 25943 F DEBUG : #07 pc 0000000001985680 /data/app/~~HX0xG_Hcezzhp_rQ8DLibQ==/org.bevyengine.demo_openxr_android-9DYAk0Wd15ZqQ9imRrrOHA==/lib/arm64/libdemo.so (rust_begin_unwind+108) (BuildId: 5c943a49e7770f56)
|
||||||
|
25943 25943 F DEBUG : #08 pc 00000000019a5a28 /data/app/~~HX0xG_Hcezzhp_rQ8DLibQ==/org.bevyengine.demo_openxr_android-9DYAk0Wd15ZqQ9imRrrOHA==/lib/arm64/libdemo.so (core::panicking::panic_fmt::h61a82d7f25335953+44) (BuildId: 5c943a49e7770f56)
|
||||||
|
25943 25943 F DEBUG : #09 pc 00000000019a5d48 /data/app/~~HX0xG_Hcezzhp_rQ8DLibQ==/org.bevyengine.demo_openxr_android-9DYAk0Wd15ZqQ9imRrrOHA==/lib/arm64/libdemo.so (core::result::unwrap_failed::h0973c0cfe8c3b00d+88) (BuildId: 5c943a49e7770f56)
|
||||||
|
25943 25943 F DEBUG : #10 pc 00000000009e8b80 /data/app/~~HX0xG_Hcezzhp_rQ8DLibQ==/org.bevyengine.demo_openxr_android-9DYAk0Wd15ZqQ9imRrrOHA==/lib/arm64/libdemo.so (bevy_openxr::xr_begin_frame::h9b87c0166e3ef0c3+3752) (BuildId: 5c943a49e7770f56)
|
||||||
|
25943 25943 F DEBUG : #11 pc 000000000095c8b8 /data/app/~~HX0xG_Hcezzhp_rQ8DLibQ==/org.bevyengine.demo_openxr_android-9DYAk0Wd15ZqQ9imRrrOHA==/lib/arm64/libdemo.so (_$LT$bevy_ecs..system..function_system..FunctionSystem$LT$Marker$C$F$GT$$u20$as$u20$bevy_ecs..system..system..System$GT$::run_unsafe::h0bd8a8c7266ad61d+704) (BuildId: 5c943a49e7770f56)
|
||||||
|
25943 25943 F DEBUG : #12 pc 00000000018b9120 /data/app/~~HX0xG_Hcezzhp_rQ8DLibQ==/org.bevyengine.demo_openxr_android-9DYAk0Wd15ZqQ9imRrrOHA==/lib/arm64/libdemo.so (async_executor::Executor::spawn::_$u7b$$u7b$closure$u7d$$u7d$::ha8e73461e94dfc87+116) (BuildId: 5c943a49e7770f56)
|
||||||
|
25943 25943 F DEBUG : #13 pc 00000000018b3580 /data/app/~~HX0xG_Hcezzhp_rQ8DLibQ==/org.bevyengine.demo_openxr_android-9DYAk0Wd15ZqQ9imRrrOHA==/lib/arm64/libdemo.so (async_task::raw::RawTask$LT$F$C$T$C$S$C$M$GT$::run::h04fb1857844bc080+292) (BuildId: 5c943a49e7770f56)
|
||||||
|
25943 25943 F DEBUG : #14 pc 00000000018e7b10 /data/app/~~HX0xG_Hcezzhp_rQ8DLibQ==/org.bevyengine.demo_openxr_android-9DYAk0Wd15ZqQ9imRrrOHA==/lib/arm64/libdemo.so (async_executor::Executor::run::_$u7b$$u7b$closure$u7d$$u7d$::h9aa771d4ba968762+4316) (BuildId: 5c943a49e7770f56)
|
||||||
|
25943 25943 F DEBUG : #15 pc 00000000018e8344 /data/app/~~HX0xG_Hcezzhp_rQ8DLibQ==/org.bevyengine.demo_openxr_android-9DYAk0Wd15ZqQ9imRrrOHA==/lib/arm64/libdemo.so (std::sys_common::backtrace::__rust_begin_short_backtrace::hdd78ac8ab492c8b7+560) (BuildId: 5c943a49e7770f56)
|
||||||
|
25943 25943 F DEBUG : #16 pc 00000000018e887c /data/app/~~HX0xG_Hcezzhp_rQ8DLibQ==/org.bevyengine.demo_openxr_android-9DYAk0Wd15ZqQ9imRrrOHA==/lib/arm64/libdemo.so (core::ops::function::FnOnce::call_once$u7b$$u7b$vtable.shim$u7d$$u7d$::h2eff1674ecfe0bf8+128) (BuildId: 5c943a49e7770f56)
|
||||||
|
25943 25943 F DEBUG : #17 pc 0000000001988260 /data/app/~~HX0xG_Hcezzhp_rQ8DLibQ==/org.bevyengine.demo_openxr_android-9DYAk0Wd15ZqQ9imRrrOHA==/lib/arm64/libdemo.so (std::sys::unix::thread::Thread::new::thread_start::hf5b87d2f06226386+24) (BuildId: 5c943a49e7770f56)
|
||||||
|
25943 25943 F DEBUG : #18 pc 00000000000df1d8 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+132) (BuildId: 9bab48b8427561f041dc114e49bfd38b)
|
||||||
|
25943 25943 F DEBUG : #19 pc 000000000008b2ec /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (BuildId: 9bab48b8427561f041dc114e49bfd38b)
|
||||||
@@ -5,10 +5,11 @@ use bevy::{
|
|||||||
ecs::schedule::ScheduleLabel,
|
ecs::schedule::ScheduleLabel,
|
||||||
log::info,
|
log::info,
|
||||||
prelude::{
|
prelude::{
|
||||||
default, shape, App, Assets, Color, Commands, Component, Entity, Event, EventReader,
|
bevy_main, default, shape, App, Assets, Color, Commands, Component, Entity, Event,
|
||||||
EventWriter, FixedUpdate, Gizmos, GlobalTransform, IntoSystemConfigs, IntoSystemSetConfigs,
|
EventReader, EventWriter, FixedUpdate, Gizmos, GlobalTransform, IntoSystemConfigs,
|
||||||
Mesh, PbrBundle, PostUpdate, Quat, Query, Res, ResMut, Resource, Schedule, SpatialBundle,
|
IntoSystemSetConfigs, Mesh, PbrBundle, PostUpdate, Quat, Query, Res, ResMut, Resource,
|
||||||
StandardMaterial, Startup, Transform, Update, Vec3, Vec3Swizzles, With, Without, World, bevy_main,
|
Schedule, SpatialBundle, StandardMaterial, Startup, Transform, Update, Vec3, Vec3Swizzles,
|
||||||
|
With, Without, World,
|
||||||
},
|
},
|
||||||
time::{Fixed, Time, Timer},
|
time::{Fixed, Time, Timer},
|
||||||
transform::TransformSystem,
|
transform::TransformSystem,
|
||||||
@@ -284,10 +285,8 @@ fn spawn_physics_hands(mut commands: Commands) {
|
|||||||
let right_hand_membership_group = Group::GROUP_2;
|
let right_hand_membership_group = Group::GROUP_2;
|
||||||
let floor_membership = Group::GROUP_3;
|
let floor_membership = Group::GROUP_3;
|
||||||
|
|
||||||
|
|
||||||
for hand in hands.iter() {
|
for hand in hands.iter() {
|
||||||
let hand_membership = match hand
|
let hand_membership = match hand {
|
||||||
{
|
|
||||||
Hand::Left => left_hand_membership_group,
|
Hand::Left => left_hand_membership_group,
|
||||||
Hand::Right => right_hand_membership_group,
|
Hand::Right => right_hand_membership_group,
|
||||||
};
|
};
|
||||||
@@ -518,13 +517,14 @@ fn request_cube_spawn(
|
|||||||
mut writer: EventWriter<SpawnCubeRequest>,
|
mut writer: EventWriter<SpawnCubeRequest>,
|
||||||
time: Res<Time>,
|
time: Res<Time>,
|
||||||
mut timer: ResMut<SpawnCubeTimer>,
|
mut timer: ResMut<SpawnCubeTimer>,
|
||||||
|
action_sets: Res<XrActionSets>,
|
||||||
) {
|
) {
|
||||||
timer.0.tick(time.delta());
|
timer.0.tick(time.delta());
|
||||||
if timer.0.finished() {
|
if timer.0.finished() {
|
||||||
//lock frame
|
//lock frame
|
||||||
let frame_state = *frame_state.lock().unwrap();
|
let frame_state = *frame_state.lock().unwrap();
|
||||||
//get controller
|
//get controller
|
||||||
let controller = oculus_controller.get_ref(&instance, &session, &frame_state, &xr_input);
|
let controller = oculus_controller.get_ref(&session, &frame_state, &xr_input, &action_sets);
|
||||||
//get controller triggers
|
//get controller triggers
|
||||||
let left_main_button = controller.a_button();
|
let left_main_button = controller.a_button();
|
||||||
if left_main_button {
|
if left_main_button {
|
||||||
@@ -570,7 +570,6 @@ fn prototype_interaction_input(
|
|||||||
oculus_controller: Res<OculusController>,
|
oculus_controller: Res<OculusController>,
|
||||||
frame_state: Res<XrFrameState>,
|
frame_state: Res<XrFrameState>,
|
||||||
xr_input: Res<XrInput>,
|
xr_input: Res<XrInput>,
|
||||||
instance: Res<XrInstance>,
|
|
||||||
session: Res<XrSession>,
|
session: Res<XrSession>,
|
||||||
mut right_interactor_query: Query<
|
mut right_interactor_query: Query<
|
||||||
(&mut XRInteractorState),
|
(&mut XRInteractorState),
|
||||||
@@ -588,11 +587,12 @@ fn prototype_interaction_input(
|
|||||||
Without<OpenXRRightController>,
|
Without<OpenXRRightController>,
|
||||||
),
|
),
|
||||||
>,
|
>,
|
||||||
|
action_sets: Res<XrActionSets>,
|
||||||
) {
|
) {
|
||||||
//lock frame
|
//lock frame
|
||||||
let frame_state = *frame_state.lock().unwrap();
|
let frame_state = *frame_state.lock().unwrap();
|
||||||
//get controller
|
//get controller
|
||||||
let controller = oculus_controller.get_ref(&instance, &session, &frame_state, &xr_input);
|
let controller = oculus_controller.get_ref(&session, &frame_state, &xr_input, &action_sets);
|
||||||
//get controller triggers
|
//get controller triggers
|
||||||
let left_trigger = controller.trigger(Hand::Left);
|
let left_trigger = controller.trigger(Hand::Left);
|
||||||
let right_trigger = controller.trigger(Hand::Right);
|
let right_trigger = controller.trigger(Hand::Right);
|
||||||
|
|||||||
609
examples/demo/src/lib_bak.rs
Normal file
609
examples/demo/src/lib_bak.rs
Normal file
@@ -0,0 +1,609 @@
|
|||||||
|
use bevy::{
|
||||||
|
diagnostic::{FrameTimeDiagnosticsPlugin, LogDiagnosticsPlugin},
|
||||||
|
log::info,
|
||||||
|
prelude::{
|
||||||
|
*,
|
||||||
|
bevy_main, default, shape, App, Assets, Color, Commands, Component, Event, EventReader,
|
||||||
|
EventWriter, GlobalTransform, IntoSystemConfigs, IntoSystemSetConfigs, Mesh, PbrBundle,
|
||||||
|
PostUpdate, Query, Res, ResMut, Resource, SpatialBundle, StandardMaterial, Startup,
|
||||||
|
Transform, Update, With, Without,
|
||||||
|
},
|
||||||
|
time::{Time, Timer},
|
||||||
|
transform::TransformSystem,
|
||||||
|
};
|
||||||
|
use bevy_openxr::{
|
||||||
|
input::XrInput,
|
||||||
|
resources::{XrFrameState, XrInstance, XrSession},
|
||||||
|
xr_input::{
|
||||||
|
debug_gizmos::OpenXrDebugRenderer,
|
||||||
|
hand::{HandBone, HandInputDebugRenderer, HandResource, HandsResource, OpenXrHandInput},
|
||||||
|
interactions::{
|
||||||
|
draw_interaction_gizmos, draw_socket_gizmos, interactions, socket_interactions,
|
||||||
|
update_interactable_states, InteractionEvent, Touched, XRDirectInteractor,
|
||||||
|
XRInteractable, XRInteractableState, XRInteractorState, XRSelection,
|
||||||
|
},
|
||||||
|
oculus_touch::OculusController,
|
||||||
|
prototype_locomotion::{proto_locomotion, PrototypeLocomotionConfig},
|
||||||
|
trackers::{OpenXRController, OpenXRLeftController, OpenXRRightController, OpenXRTracker},
|
||||||
|
Hand,
|
||||||
|
},
|
||||||
|
DefaultXrPlugins,
|
||||||
|
};
|
||||||
|
|
||||||
|
mod setup;
|
||||||
|
use crate::setup::setup_scene;
|
||||||
|
use bevy_rapier3d::prelude::*;
|
||||||
|
|
||||||
|
#[bevy_main]
|
||||||
|
pub fn main() {
|
||||||
|
color_eyre::install().unwrap();
|
||||||
|
|
||||||
|
info!("Running bevy_openxr demo");
|
||||||
|
let mut app = App::new();
|
||||||
|
|
||||||
|
app
|
||||||
|
//lets get the usual diagnostic stuff added
|
||||||
|
.add_plugins(LogDiagnosticsPlugin::default())
|
||||||
|
.add_plugins(FrameTimeDiagnosticsPlugin)
|
||||||
|
//lets get the xr defaults added
|
||||||
|
.add_plugins(DefaultXrPlugins)
|
||||||
|
//lets add the debug renderer for the controllers
|
||||||
|
.add_plugins(OpenXrDebugRenderer)
|
||||||
|
//rapier goes here
|
||||||
|
.add_plugins(RapierPhysicsPlugin::<NoUserData>::default().with_default_system_setup(false))
|
||||||
|
.add_plugins(RapierDebugRenderPlugin::default())
|
||||||
|
//lets setup the starting scene
|
||||||
|
.add_systems(Startup, setup_scene)
|
||||||
|
.add_systems(Startup, spawn_controllers_example) //you need to spawn controllers or it crashes TODO:: Fix this
|
||||||
|
//add locomotion
|
||||||
|
.add_systems(Update, proto_locomotion)
|
||||||
|
.insert_resource(PrototypeLocomotionConfig::default())
|
||||||
|
//lets add the interaction systems
|
||||||
|
.add_event::<InteractionEvent>()
|
||||||
|
.add_systems(Update, prototype_interaction_input)
|
||||||
|
.add_systems(Update, interactions.before(update_interactable_states))
|
||||||
|
.add_systems(Update, update_interactable_states)
|
||||||
|
.add_systems(
|
||||||
|
Update,
|
||||||
|
socket_interactions.before(update_interactable_states),
|
||||||
|
)
|
||||||
|
//add the grabbable system
|
||||||
|
.add_systems(Update, update_grabbables.after(update_interactable_states))
|
||||||
|
//draw the interaction gizmos
|
||||||
|
.add_systems(
|
||||||
|
Update,
|
||||||
|
draw_interaction_gizmos.after(update_interactable_states),
|
||||||
|
)
|
||||||
|
.add_systems(Update, draw_socket_gizmos.after(update_interactable_states))
|
||||||
|
//add our cube spawning system
|
||||||
|
.add_event::<SpawnCubeRequest>()
|
||||||
|
.insert_resource(SpawnCubeTimer(Timer::from_seconds(
|
||||||
|
0.25,
|
||||||
|
bevy::time::TimerMode::Once,
|
||||||
|
)))
|
||||||
|
.add_systems(Update, request_cube_spawn)
|
||||||
|
.add_systems(Update, cube_spawner.after(request_cube_spawn))
|
||||||
|
//test capsule
|
||||||
|
.add_systems(Startup, spawn_capsule)
|
||||||
|
//physics hands
|
||||||
|
.add_plugins(OpenXrHandInput)
|
||||||
|
.add_plugins(HandInputDebugRenderer)
|
||||||
|
.add_systems(Startup, spawn_physics_hands)
|
||||||
|
.add_systems(Update, update_physics_hands);
|
||||||
|
|
||||||
|
//configure rapier sets
|
||||||
|
app.configure_sets(
|
||||||
|
PostUpdate,
|
||||||
|
(
|
||||||
|
PhysicsSet::SyncBackend,
|
||||||
|
PhysicsSet::StepSimulation,
|
||||||
|
PhysicsSet::Writeback,
|
||||||
|
)
|
||||||
|
.chain()
|
||||||
|
.before(TransformSystem::TransformPropagate),
|
||||||
|
);
|
||||||
|
//add rapier systems
|
||||||
|
app.add_systems(
|
||||||
|
PostUpdate,
|
||||||
|
(
|
||||||
|
RapierPhysicsPlugin::<NoUserData>::get_systems(PhysicsSet::SyncBackend)
|
||||||
|
.in_set(PhysicsSet::SyncBackend),
|
||||||
|
(
|
||||||
|
RapierPhysicsPlugin::<NoUserData>::get_systems(PhysicsSet::StepSimulation),
|
||||||
|
// despawn_one_box,
|
||||||
|
)
|
||||||
|
.in_set(PhysicsSet::StepSimulation),
|
||||||
|
RapierPhysicsPlugin::<NoUserData>::get_systems(PhysicsSet::Writeback)
|
||||||
|
.in_set(PhysicsSet::Writeback),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
app.run();
|
||||||
|
}
|
||||||
|
|
||||||
|
fn spawn_controllers_example(mut commands: Commands) {
|
||||||
|
//left hand
|
||||||
|
commands.spawn((
|
||||||
|
OpenXRLeftController,
|
||||||
|
OpenXRController,
|
||||||
|
OpenXRTracker,
|
||||||
|
SpatialBundle::default(),
|
||||||
|
XRDirectInteractor,
|
||||||
|
XRInteractorState::default(),
|
||||||
|
XRSelection::default(),
|
||||||
|
));
|
||||||
|
//right hand
|
||||||
|
commands.spawn((
|
||||||
|
OpenXRRightController,
|
||||||
|
OpenXRController,
|
||||||
|
OpenXRTracker,
|
||||||
|
SpatialBundle::default(),
|
||||||
|
XRDirectInteractor,
|
||||||
|
XRInteractorState::default(),
|
||||||
|
XRSelection::default(),
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
fn spawn_capsule(
|
||||||
|
mut commands: Commands,
|
||||||
|
mut meshes: ResMut<Assets<Mesh>>,
|
||||||
|
mut materials: ResMut<Assets<StandardMaterial>>,
|
||||||
|
) {
|
||||||
|
commands.spawn((
|
||||||
|
PbrBundle {
|
||||||
|
mesh: meshes.add(Mesh::from(shape::Capsule {
|
||||||
|
radius: 0.033,
|
||||||
|
depth: 0.115,
|
||||||
|
..default()
|
||||||
|
})),
|
||||||
|
material: materials.add(Color::rgb(0.8, 0.7, 0.6).into()),
|
||||||
|
transform: Transform::from_xyz(0.0, 2.0, 0.0),
|
||||||
|
..default()
|
||||||
|
},
|
||||||
|
// Collider::capsule_y(0.0575, 0.034),
|
||||||
|
Collider::capsule(
|
||||||
|
Vec3 {
|
||||||
|
x: 0.0,
|
||||||
|
y: -0.0575,
|
||||||
|
z: 0.0,
|
||||||
|
},
|
||||||
|
Vec3 {
|
||||||
|
x: 0.0,
|
||||||
|
y: 0.0575,
|
||||||
|
z: 0.0,
|
||||||
|
},
|
||||||
|
0.034,
|
||||||
|
),
|
||||||
|
RigidBody::Dynamic,
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Component, PartialEq, Debug, Clone, Copy)]
|
||||||
|
pub enum PhysicsHandBone {
|
||||||
|
Palm,
|
||||||
|
Wrist,
|
||||||
|
ThumbMetacarpal,
|
||||||
|
ThumbProximal,
|
||||||
|
ThumbDistal,
|
||||||
|
ThumbTip,
|
||||||
|
IndexMetacarpal,
|
||||||
|
IndexProximal,
|
||||||
|
IndexIntermediate,
|
||||||
|
IndexDistal,
|
||||||
|
IndexTip,
|
||||||
|
MiddleMetacarpal,
|
||||||
|
MiddleProximal,
|
||||||
|
MiddleIntermediate,
|
||||||
|
MiddleDistal,
|
||||||
|
MiddleTip,
|
||||||
|
RingMetacarpal,
|
||||||
|
RingProximal,
|
||||||
|
RingIntermediate,
|
||||||
|
RingDistal,
|
||||||
|
RingTip,
|
||||||
|
LittleMetacarpal,
|
||||||
|
LittleProximal,
|
||||||
|
LittleIntermediate,
|
||||||
|
LittleDistal,
|
||||||
|
LittleTip,
|
||||||
|
}
|
||||||
|
#[derive(Component, PartialEq)]
|
||||||
|
pub enum BoneInitState {
|
||||||
|
True,
|
||||||
|
False,
|
||||||
|
}
|
||||||
|
|
||||||
|
fn spawn_physics_hands(mut commands: Commands) {
|
||||||
|
//here we go
|
||||||
|
let hands = [Hand::Left, Hand::Right];
|
||||||
|
let bones = [
|
||||||
|
PhysicsHandBone::Palm,
|
||||||
|
PhysicsHandBone::Wrist,
|
||||||
|
PhysicsHandBone::ThumbMetacarpal,
|
||||||
|
PhysicsHandBone::ThumbProximal,
|
||||||
|
PhysicsHandBone::ThumbDistal,
|
||||||
|
PhysicsHandBone::ThumbTip,
|
||||||
|
PhysicsHandBone::IndexMetacarpal,
|
||||||
|
PhysicsHandBone::IndexProximal,
|
||||||
|
PhysicsHandBone::IndexIntermediate,
|
||||||
|
PhysicsHandBone::IndexDistal,
|
||||||
|
PhysicsHandBone::IndexTip,
|
||||||
|
PhysicsHandBone::MiddleMetacarpal,
|
||||||
|
PhysicsHandBone::MiddleProximal,
|
||||||
|
PhysicsHandBone::MiddleIntermediate,
|
||||||
|
PhysicsHandBone::MiddleDistal,
|
||||||
|
PhysicsHandBone::MiddleTip,
|
||||||
|
PhysicsHandBone::RingMetacarpal,
|
||||||
|
PhysicsHandBone::RingProximal,
|
||||||
|
PhysicsHandBone::RingIntermediate,
|
||||||
|
PhysicsHandBone::RingDistal,
|
||||||
|
PhysicsHandBone::RingTip,
|
||||||
|
PhysicsHandBone::LittleMetacarpal,
|
||||||
|
PhysicsHandBone::LittleProximal,
|
||||||
|
PhysicsHandBone::LittleIntermediate,
|
||||||
|
PhysicsHandBone::LittleDistal,
|
||||||
|
PhysicsHandBone::LittleTip,
|
||||||
|
];
|
||||||
|
//lets just do the Right ThumbMetacarpal for now
|
||||||
|
//i dont understand the groups yet
|
||||||
|
let self_group = Group::GROUP_1;
|
||||||
|
let interaction_group = Group::ALL;
|
||||||
|
let radius = 0.010;
|
||||||
|
|
||||||
|
for hand in hands.iter() {
|
||||||
|
for bone in bones.iter() {
|
||||||
|
//spawn the thing
|
||||||
|
commands.spawn((
|
||||||
|
SpatialBundle::default(),
|
||||||
|
Collider::capsule(
|
||||||
|
Vec3 {
|
||||||
|
x: 0.0,
|
||||||
|
y: -0.0575,
|
||||||
|
z: 0.0,
|
||||||
|
},
|
||||||
|
Vec3 {
|
||||||
|
x: 0.0,
|
||||||
|
y: 0.0575,
|
||||||
|
z: 0.0,
|
||||||
|
},
|
||||||
|
radius,
|
||||||
|
),
|
||||||
|
RigidBody::KinematicPositionBased,
|
||||||
|
// CollisionGroups::new(self_group, interaction_group),
|
||||||
|
// SolverGroups::new(self_group, interaction_group),
|
||||||
|
bone.clone(),
|
||||||
|
BoneInitState::False,
|
||||||
|
hand.clone(),
|
||||||
|
));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn update_physics_hands(
|
||||||
|
hands_res: Option<Res<HandsResource>>,
|
||||||
|
mut bone_query: Query<(
|
||||||
|
&mut Transform,
|
||||||
|
&mut Collider,
|
||||||
|
&PhysicsHandBone,
|
||||||
|
&mut BoneInitState,
|
||||||
|
&Hand,
|
||||||
|
)>,
|
||||||
|
hand_query: Query<(&Transform, &HandBone, &Hand, Without<PhysicsHandBone>)>,
|
||||||
|
) {
|
||||||
|
//sanity check do we even have hands?
|
||||||
|
match hands_res {
|
||||||
|
Some(res) => {
|
||||||
|
//config stuff
|
||||||
|
let radius = 0.010;
|
||||||
|
for mut bone in bone_query.iter_mut() {
|
||||||
|
let hand_res = match bone.4 {
|
||||||
|
Hand::Left => res.left,
|
||||||
|
Hand::Right => res.right,
|
||||||
|
};
|
||||||
|
|
||||||
|
//lets just do the Right ThumbMetacarpal for now
|
||||||
|
let result = get_start_and_end_entities(hand_res, bone.2);
|
||||||
|
if let Some((start_entity, end_entity)) = result {
|
||||||
|
//now we need their transforms
|
||||||
|
let start_components = hand_query.get(start_entity);
|
||||||
|
let end_components = hand_query.get(end_entity);
|
||||||
|
let direction = end_components.unwrap().0.translation
|
||||||
|
- start_components.unwrap().0.translation;
|
||||||
|
if direction.length() < 0.001 {
|
||||||
|
//i hate this but we need to skip init if the length is zero
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
match *bone.3 {
|
||||||
|
BoneInitState::True => {
|
||||||
|
//if we are init then we just move em?
|
||||||
|
*bone.0 = start_components
|
||||||
|
.unwrap()
|
||||||
|
.0
|
||||||
|
.clone()
|
||||||
|
.looking_at(end_components.unwrap().0.translation, Vec3::Y);
|
||||||
|
}
|
||||||
|
BoneInitState::False => {
|
||||||
|
//build a new collider?
|
||||||
|
*bone.1 = Collider::capsule(
|
||||||
|
Vec3::splat(0.0),
|
||||||
|
Vec3 {
|
||||||
|
x: 0.0,
|
||||||
|
y: 0.0,
|
||||||
|
z: -direction.length(),
|
||||||
|
},
|
||||||
|
radius,
|
||||||
|
);
|
||||||
|
*bone.3 = BoneInitState::True;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
None => info!("hand states resource not initialized yet"),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn get_start_and_end_entities(
|
||||||
|
hand_res: HandResource,
|
||||||
|
bone: &PhysicsHandBone,
|
||||||
|
) -> Option<(Entity, Entity)> {
|
||||||
|
match bone {
|
||||||
|
PhysicsHandBone::Palm => return None,
|
||||||
|
PhysicsHandBone::Wrist => return None,
|
||||||
|
PhysicsHandBone::ThumbMetacarpal => {
|
||||||
|
return Some((hand_res.thumb.metacarpal, hand_res.thumb.proximal))
|
||||||
|
}
|
||||||
|
PhysicsHandBone::ThumbProximal => {
|
||||||
|
return Some((hand_res.thumb.proximal, hand_res.thumb.distal))
|
||||||
|
}
|
||||||
|
PhysicsHandBone::ThumbDistal => return Some((hand_res.thumb.distal, hand_res.thumb.tip)),
|
||||||
|
PhysicsHandBone::ThumbTip => return None,
|
||||||
|
PhysicsHandBone::IndexMetacarpal => {
|
||||||
|
return Some((hand_res.index.metacarpal, hand_res.index.proximal))
|
||||||
|
}
|
||||||
|
PhysicsHandBone::IndexProximal => {
|
||||||
|
return Some((hand_res.index.proximal, hand_res.index.intermediate))
|
||||||
|
}
|
||||||
|
PhysicsHandBone::IndexIntermediate => {
|
||||||
|
return Some((hand_res.index.intermediate, hand_res.index.distal))
|
||||||
|
}
|
||||||
|
PhysicsHandBone::IndexDistal => return Some((hand_res.index.distal, hand_res.index.tip)),
|
||||||
|
PhysicsHandBone::IndexTip => return None,
|
||||||
|
PhysicsHandBone::MiddleMetacarpal => {
|
||||||
|
return Some((hand_res.middle.metacarpal, hand_res.middle.proximal))
|
||||||
|
}
|
||||||
|
PhysicsHandBone::MiddleProximal => {
|
||||||
|
return Some((hand_res.middle.proximal, hand_res.middle.intermediate))
|
||||||
|
}
|
||||||
|
PhysicsHandBone::MiddleIntermediate => {
|
||||||
|
return Some((hand_res.middle.intermediate, hand_res.middle.distal))
|
||||||
|
}
|
||||||
|
PhysicsHandBone::MiddleDistal => {
|
||||||
|
return Some((hand_res.middle.distal, hand_res.middle.tip))
|
||||||
|
}
|
||||||
|
PhysicsHandBone::MiddleTip => return None,
|
||||||
|
PhysicsHandBone::RingMetacarpal => {
|
||||||
|
return Some((hand_res.ring.metacarpal, hand_res.ring.proximal))
|
||||||
|
}
|
||||||
|
PhysicsHandBone::RingProximal => {
|
||||||
|
return Some((hand_res.ring.proximal, hand_res.ring.intermediate))
|
||||||
|
}
|
||||||
|
PhysicsHandBone::RingIntermediate => {
|
||||||
|
return Some((hand_res.ring.intermediate, hand_res.ring.distal))
|
||||||
|
}
|
||||||
|
PhysicsHandBone::RingDistal => return Some((hand_res.ring.distal, hand_res.ring.tip)),
|
||||||
|
PhysicsHandBone::RingTip => return None,
|
||||||
|
PhysicsHandBone::LittleMetacarpal => {
|
||||||
|
return Some((hand_res.little.metacarpal, hand_res.little.proximal))
|
||||||
|
}
|
||||||
|
PhysicsHandBone::LittleProximal => {
|
||||||
|
return Some((hand_res.little.proximal, hand_res.little.intermediate))
|
||||||
|
}
|
||||||
|
PhysicsHandBone::LittleIntermediate => {
|
||||||
|
return Some((hand_res.little.intermediate, hand_res.little.distal))
|
||||||
|
}
|
||||||
|
PhysicsHandBone::LittleDistal => {
|
||||||
|
return Some((hand_res.little.distal, hand_res.little.tip))
|
||||||
|
}
|
||||||
|
PhysicsHandBone::LittleTip => return None,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
fn get_hand_res(res: &Res<'_, HandsResource>, hand: Hand) -> HandResource {
|
||||||
|
match hand {
|
||||||
|
Hand::Left => res.left.clone(),
|
||||||
|
Hand::Right => res.right.clone(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Event, Default)]
|
||||||
|
pub struct SpawnCubeRequest;
|
||||||
|
|
||||||
|
#[derive(Resource)]
|
||||||
|
pub struct SpawnCubeTimer(Timer);
|
||||||
|
|
||||||
|
fn request_cube_spawn(
|
||||||
|
oculus_controller: Res<OculusController>,
|
||||||
|
frame_state: Res<XrFrameState>,
|
||||||
|
xr_input: Res<XrInput>,
|
||||||
|
instance: Res<XrInstance>,
|
||||||
|
session: Res<XrSession>,
|
||||||
|
mut writer: EventWriter<SpawnCubeRequest>,
|
||||||
|
time: Res<Time>,
|
||||||
|
mut timer: ResMut<SpawnCubeTimer>,
|
||||||
|
) {
|
||||||
|
timer.0.tick(time.delta());
|
||||||
|
if timer.0.finished() {
|
||||||
|
//lock frame
|
||||||
|
let frame_state = *frame_state.lock().unwrap();
|
||||||
|
//get controller
|
||||||
|
let controller = oculus_controller.get_ref(&instance, &session, &frame_state, &xr_input);
|
||||||
|
//get controller triggers
|
||||||
|
let left_main_button = controller.a_button();
|
||||||
|
if left_main_button {
|
||||||
|
writer.send(SpawnCubeRequest::default());
|
||||||
|
timer.0.reset();
|
||||||
|
}
|
||||||
|
let right_main_button = controller.x_button();
|
||||||
|
if right_main_button {
|
||||||
|
writer.send(SpawnCubeRequest::default());
|
||||||
|
timer.0.reset();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn cube_spawner(
|
||||||
|
mut commands: Commands,
|
||||||
|
mut meshes: ResMut<Assets<Mesh>>,
|
||||||
|
mut materials: ResMut<Assets<StandardMaterial>>,
|
||||||
|
mut events: EventReader<SpawnCubeRequest>,
|
||||||
|
) {
|
||||||
|
for request in events.iter() {
|
||||||
|
// cube
|
||||||
|
commands.spawn((
|
||||||
|
PbrBundle {
|
||||||
|
mesh: meshes.add(Mesh::from(shape::Cube { size: 0.1 })),
|
||||||
|
material: materials.add(Color::rgb(0.8, 0.7, 0.6).into()),
|
||||||
|
transform: Transform::from_xyz(0.0, 1.0, 0.0),
|
||||||
|
..default()
|
||||||
|
},
|
||||||
|
RigidBody::Dynamic,
|
||||||
|
Collider::cuboid(0.05, 0.05, 0.05),
|
||||||
|
ColliderDebugColor(Color::hsl(220.0, 1.0, 0.3)),
|
||||||
|
XRInteractable,
|
||||||
|
XRInteractableState::default(),
|
||||||
|
Grabbable,
|
||||||
|
Touched(false),
|
||||||
|
));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//TODO: find a real place for this
|
||||||
|
fn prototype_interaction_input(
|
||||||
|
oculus_controller: Res<OculusController>,
|
||||||
|
frame_state: Res<XrFrameState>,
|
||||||
|
xr_input: Res<XrInput>,
|
||||||
|
instance: Res<XrInstance>,
|
||||||
|
session: Res<XrSession>,
|
||||||
|
mut right_interactor_query: Query<
|
||||||
|
(&mut XRInteractorState),
|
||||||
|
(
|
||||||
|
With<XRDirectInteractor>,
|
||||||
|
With<OpenXRRightController>,
|
||||||
|
Without<OpenXRLeftController>,
|
||||||
|
),
|
||||||
|
>,
|
||||||
|
mut left_interactor_query: Query<
|
||||||
|
(&mut XRInteractorState),
|
||||||
|
(
|
||||||
|
With<XRDirectInteractor>,
|
||||||
|
With<OpenXRLeftController>,
|
||||||
|
Without<OpenXRRightController>,
|
||||||
|
),
|
||||||
|
>,
|
||||||
|
) {
|
||||||
|
//lock frame
|
||||||
|
let frame_state = *frame_state.lock().unwrap();
|
||||||
|
//get controller
|
||||||
|
let controller = oculus_controller.get_ref(&instance, &session, &frame_state, &xr_input);
|
||||||
|
//get controller triggers
|
||||||
|
let left_trigger = controller.trigger(Hand::Left);
|
||||||
|
let right_trigger = controller.trigger(Hand::Right);
|
||||||
|
//get the interactors and do state stuff
|
||||||
|
let mut left_state = left_interactor_query.single_mut();
|
||||||
|
if left_trigger > 0.8 {
|
||||||
|
*left_state = XRInteractorState::Selecting;
|
||||||
|
} else {
|
||||||
|
*left_state = XRInteractorState::Idle;
|
||||||
|
}
|
||||||
|
let mut right_state = right_interactor_query.single_mut();
|
||||||
|
if right_trigger > 0.8 {
|
||||||
|
*right_state = XRInteractorState::Selecting;
|
||||||
|
} else {
|
||||||
|
*right_state = XRInteractorState::Idle;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Component)]
|
||||||
|
pub struct Grabbable;
|
||||||
|
|
||||||
|
pub fn update_grabbables(
|
||||||
|
mut events: EventReader<InteractionEvent>,
|
||||||
|
mut grabbable_query: Query<(
|
||||||
|
Entity,
|
||||||
|
&mut Transform,
|
||||||
|
With<Grabbable>,
|
||||||
|
Without<XRDirectInteractor>,
|
||||||
|
Option<&mut RigidBody>,
|
||||||
|
)>,
|
||||||
|
mut interactor_query: Query<(
|
||||||
|
&GlobalTransform,
|
||||||
|
&XRInteractorState,
|
||||||
|
&mut XRSelection,
|
||||||
|
Without<Grabbable>,
|
||||||
|
)>,
|
||||||
|
) {
|
||||||
|
//so basically the idea is to try all the events?
|
||||||
|
for event in events.read() {
|
||||||
|
// info!("some event");
|
||||||
|
match grabbable_query.get_mut(event.interactable) {
|
||||||
|
Ok(mut grabbable_transform) => {
|
||||||
|
// info!("we got a grabbable");
|
||||||
|
//now we need the location of our interactor
|
||||||
|
match interactor_query.get_mut(event.interactor) {
|
||||||
|
Ok(mut interactor_transform) => {
|
||||||
|
match *interactor_transform.2 {
|
||||||
|
XRSelection::Empty => {
|
||||||
|
match interactor_transform.1 {
|
||||||
|
XRInteractorState::Idle => match grabbable_transform.4 {
|
||||||
|
Some(mut thing) => {
|
||||||
|
*thing = RigidBody::Dynamic;
|
||||||
|
*interactor_transform.2 = XRSelection::Empty;
|
||||||
|
}
|
||||||
|
None => (),
|
||||||
|
},
|
||||||
|
XRInteractorState::Selecting => {
|
||||||
|
// info!("its a direct interactor?");
|
||||||
|
match grabbable_transform.4 {
|
||||||
|
Some(mut thing) => {
|
||||||
|
*thing = RigidBody::KinematicPositionBased;
|
||||||
|
*interactor_transform.2 =
|
||||||
|
XRSelection::Full(grabbable_transform.0);
|
||||||
|
}
|
||||||
|
None => (),
|
||||||
|
}
|
||||||
|
*grabbable_transform.1 =
|
||||||
|
interactor_transform.0.compute_transform();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
XRSelection::Full(ent) => {
|
||||||
|
info!("nah bro we holding something");
|
||||||
|
match grabbable_transform.0 == ent {
|
||||||
|
true => {
|
||||||
|
*grabbable_transform.1 =
|
||||||
|
interactor_transform.0.compute_transform();
|
||||||
|
}
|
||||||
|
false => {}
|
||||||
|
}
|
||||||
|
match interactor_transform.1 {
|
||||||
|
XRInteractorState::Idle => {
|
||||||
|
*interactor_transform.2 = XRSelection::Empty
|
||||||
|
}
|
||||||
|
XRInteractorState::Selecting => {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Err(_) => {
|
||||||
|
// info!("not a direct interactor")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Err(_) => {
|
||||||
|
// info!("not a grabbable?")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,5 +1,3 @@
|
|||||||
|
|
||||||
|
|
||||||
use bevy::diagnostic::{FrameTimeDiagnosticsPlugin, LogDiagnosticsPlugin};
|
use bevy::diagnostic::{FrameTimeDiagnosticsPlugin, LogDiagnosticsPlugin};
|
||||||
|
|
||||||
use bevy::prelude::*;
|
use bevy::prelude::*;
|
||||||
@@ -7,7 +5,8 @@ use bevy::transform::components::Transform;
|
|||||||
use bevy_oxr::input::XrInput;
|
use bevy_oxr::input::XrInput;
|
||||||
use bevy_oxr::resources::{XrFrameState, XrInstance, XrSession};
|
use bevy_oxr::resources::{XrFrameState, XrInstance, XrSession};
|
||||||
|
|
||||||
use bevy_oxr::xr_input::hand::{OpenXrHandInput, HandInputDebugRenderer};
|
use bevy_oxr::xr_input::actions::XrActionSets;
|
||||||
|
use bevy_oxr::xr_input::hand::{HandInputDebugRenderer, OpenXrHandInput};
|
||||||
use bevy_oxr::xr_input::interactions::{
|
use bevy_oxr::xr_input::interactions::{
|
||||||
draw_interaction_gizmos, draw_socket_gizmos, interactions, socket_interactions,
|
draw_interaction_gizmos, draw_socket_gizmos, interactions, socket_interactions,
|
||||||
update_interactable_states, InteractionEvent, Touched, XRDirectInteractor, XRInteractable,
|
update_interactable_states, InteractionEvent, Touched, XRDirectInteractor, XRInteractable,
|
||||||
@@ -143,7 +142,6 @@ fn prototype_interaction_input(
|
|||||||
oculus_controller: Res<OculusController>,
|
oculus_controller: Res<OculusController>,
|
||||||
frame_state: Res<XrFrameState>,
|
frame_state: Res<XrFrameState>,
|
||||||
xr_input: Res<XrInput>,
|
xr_input: Res<XrInput>,
|
||||||
instance: Res<XrInstance>,
|
|
||||||
session: Res<XrSession>,
|
session: Res<XrSession>,
|
||||||
mut right_interactor_query: Query<
|
mut right_interactor_query: Query<
|
||||||
(&mut XRInteractorState),
|
(&mut XRInteractorState),
|
||||||
@@ -161,11 +159,12 @@ fn prototype_interaction_input(
|
|||||||
Without<OpenXRRightController>,
|
Without<OpenXRRightController>,
|
||||||
),
|
),
|
||||||
>,
|
>,
|
||||||
|
action_sets: Res<XrActionSets>,
|
||||||
) {
|
) {
|
||||||
//lock frame
|
//lock frame
|
||||||
let frame_state = *frame_state.lock().unwrap();
|
let frame_state = *frame_state.lock().unwrap();
|
||||||
//get controller
|
//get controller
|
||||||
let controller = oculus_controller.get_ref(&instance, &session, &frame_state, &xr_input);
|
let controller = oculus_controller.get_ref(&session, &frame_state, &xr_input, &action_sets);
|
||||||
//get controller triggers
|
//get controller triggers
|
||||||
let left_trigger = controller.trigger(Hand::Left);
|
let left_trigger = controller.trigger(Hand::Left);
|
||||||
let right_trigger = controller.trigger(Hand::Right);
|
let right_trigger = controller.trigger(Hand::Right);
|
||||||
|
|||||||
@@ -61,12 +61,10 @@ pub fn initialize_xr_graphics(
|
|||||||
{
|
{
|
||||||
enabled_extensions.khr_android_create_instance = true;
|
enabled_extensions.khr_android_create_instance = true;
|
||||||
}
|
}
|
||||||
// Horrible hack to get the Handtacking extension Loaded, Replace with good system to load
|
enabled_extensions.ext_hand_tracking = available_extensions.ext_hand_tracking;
|
||||||
// any extension at some point
|
|
||||||
enabled_extensions.ext_hand_tracking =
|
|
||||||
available_extensions.ext_hand_tracking && enable_hand_tracking;
|
|
||||||
// enabled_extensions.ext_hand_joints_motion_range = available_extensions.ext_hand_joints_motion_range;
|
// enabled_extensions.ext_hand_joints_motion_range = available_extensions.ext_hand_joints_motion_range;
|
||||||
|
|
||||||
|
|
||||||
let available_layers = xr_entry.enumerate_layers()?;
|
let available_layers = xr_entry.enumerate_layers()?;
|
||||||
info!("available xr layers: {:#?}", available_layers);
|
info!("available xr layers: {:#?}", available_layers);
|
||||||
|
|
||||||
|
|||||||
22
src/lib.rs
22
src/lib.rs
@@ -27,6 +27,8 @@ use xr_input::hands::hand_tracking::HandTrackingPlugin;
|
|||||||
use xr_input::handtracking::HandTrackingTracker;
|
use xr_input::handtracking::HandTrackingTracker;
|
||||||
use xr_input::OpenXrInput;
|
use xr_input::OpenXrInput;
|
||||||
|
|
||||||
|
use crate::xr_input::oculus_touch::ActionSets;
|
||||||
|
|
||||||
const VIEW_TYPE: xr::ViewConfigurationType = xr::ViewConfigurationType::PRIMARY_STEREO;
|
const VIEW_TYPE: xr::ViewConfigurationType = xr::ViewConfigurationType::PRIMARY_STEREO;
|
||||||
|
|
||||||
pub const LEFT_XR_TEXTURE_HANDLE: ManualTextureViewHandle = ManualTextureViewHandle(1208214591);
|
pub const LEFT_XR_TEXTURE_HANDLE: ManualTextureViewHandle = ManualTextureViewHandle(1208214591);
|
||||||
@@ -158,8 +160,14 @@ impl Plugin for OpenXrPlugin {
|
|||||||
.insert_resource(input.clone())
|
.insert_resource(input.clone())
|
||||||
.insert_resource(views.clone())
|
.insert_resource(views.clone())
|
||||||
.insert_resource(frame_state.clone())
|
.insert_resource(frame_state.clone())
|
||||||
.insert_resource(action_sets.clone())
|
.insert_resource(action_sets.clone());
|
||||||
.insert_resource(HandTrackingTracker::new(&session).unwrap());
|
let hands = xr_instance.exts().ext_hand_tracking.is_some();
|
||||||
|
if hands {
|
||||||
|
app.insert_resource(HandTrackingTracker::new(&session).unwrap());
|
||||||
|
app.insert_resource(HandInputSource::OpenXr);
|
||||||
|
} else {
|
||||||
|
app.insert_resource(HandInputSource::Emulated);
|
||||||
|
}
|
||||||
|
|
||||||
let (left, right) = swapchain.get_render_views();
|
let (left, right) = swapchain.get_render_views();
|
||||||
let left = ManualTextureView {
|
let left = ManualTextureView {
|
||||||
@@ -347,15 +355,17 @@ pub fn end_frame(
|
|||||||
}
|
}
|
||||||
{
|
{
|
||||||
let _span = info_span!("xr_end_frame").entered();
|
let _span = info_span!("xr_end_frame").entered();
|
||||||
swapchain
|
let result = swapchain.end(
|
||||||
.end(
|
|
||||||
xr_frame_state.lock().unwrap().predicted_display_time,
|
xr_frame_state.lock().unwrap().predicted_display_time,
|
||||||
&*views.lock().unwrap(),
|
&*views.lock().unwrap(),
|
||||||
&input.stage,
|
&input.stage,
|
||||||
**resolution,
|
**resolution,
|
||||||
**environment_blend_mode,
|
**environment_blend_mode,
|
||||||
)
|
);
|
||||||
.unwrap();
|
match result {
|
||||||
|
Ok(_) => {}
|
||||||
|
Err(e) => warn!("error: {}", e),
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
328
src/xr_input/actions.rs
Normal file
328
src/xr_input/actions.rs
Normal file
@@ -0,0 +1,328 @@
|
|||||||
|
use bevy::{prelude::*, utils::HashMap};
|
||||||
|
use openxr as xr;
|
||||||
|
use xr::{Action, Binding, Haptic, Posef};
|
||||||
|
|
||||||
|
use crate::resources::{XrInstance, XrSession};
|
||||||
|
|
||||||
|
use super::oculus_touch::ActionSets;
|
||||||
|
|
||||||
|
pub struct OpenXrActionsPlugin;
|
||||||
|
impl Plugin for OpenXrActionsPlugin {
|
||||||
|
fn build(&self, app: &mut App) {
|
||||||
|
app.insert_resource(SetupActionSets {
|
||||||
|
sets: HashMap::new(),
|
||||||
|
});
|
||||||
|
app.add_systems(PostStartup, setup_oxr_actions);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn setup_oxr_actions(world: &mut World) {
|
||||||
|
let actions = world.remove_resource::<SetupActionSets>().unwrap();
|
||||||
|
let instance = world.get_resource::<XrInstance>().unwrap();
|
||||||
|
let session = world.get_resource::<XrSession>().unwrap();
|
||||||
|
let left_path = instance.string_to_path("/user/hand/left").unwrap();
|
||||||
|
let right_path = instance.string_to_path("/user/hand/right").unwrap();
|
||||||
|
let hands = [left_path, right_path];
|
||||||
|
|
||||||
|
let mut oxr_action_sets = Vec::new();
|
||||||
|
let mut action_sets = XrActionSets { sets: default() };
|
||||||
|
// let mut action_bindings: HashMap<&'static str, Vec<xr::Path>> = HashMap::new();
|
||||||
|
let mut a_iter = actions.sets.into_iter();
|
||||||
|
let mut action_bindings: HashMap<
|
||||||
|
(&'static str, &'static str),
|
||||||
|
HashMap<&'static str, Vec<xr::Path>>,
|
||||||
|
> = HashMap::new();
|
||||||
|
while let Some((set_name, set)) = a_iter.next() {
|
||||||
|
let mut actions: HashMap<&'static str, TypedAction> = default();
|
||||||
|
let oxr_action_set = instance
|
||||||
|
.create_action_set(set_name, set.pretty_name, set.priority)
|
||||||
|
.expect("Unable to create action set");
|
||||||
|
for (action_name, action) in set.actions.into_iter() {
|
||||||
|
let typed_action = match action.action_type {
|
||||||
|
ActionType::F32 => TypedAction::F32(match action.handednes {
|
||||||
|
ActionHandednes::Single => oxr_action_set
|
||||||
|
.create_action(action_name, action.pretty_name, &[])
|
||||||
|
.expect(&format!("Unable to create action: {}", action_name)),
|
||||||
|
ActionHandednes::Double => oxr_action_set
|
||||||
|
.create_action(action_name, action.pretty_name, &hands)
|
||||||
|
.expect(&format!("Unable to create action: {}", action_name)),
|
||||||
|
}),
|
||||||
|
ActionType::Bool => TypedAction::Bool(match action.handednes {
|
||||||
|
ActionHandednes::Single => oxr_action_set
|
||||||
|
.create_action(action_name, action.pretty_name, &[])
|
||||||
|
.expect(&format!("Unable to create action: {}", action_name)),
|
||||||
|
ActionHandednes::Double => oxr_action_set
|
||||||
|
.create_action(action_name, action.pretty_name, &hands)
|
||||||
|
.expect(&format!("Unable to create action: {}", action_name)),
|
||||||
|
}),
|
||||||
|
ActionType::PoseF => TypedAction::PoseF(match action.handednes {
|
||||||
|
ActionHandednes::Single => oxr_action_set
|
||||||
|
.create_action(action_name, action.pretty_name, &[])
|
||||||
|
.expect(&format!("Unable to create action: {}", action_name)),
|
||||||
|
ActionHandednes::Double => oxr_action_set
|
||||||
|
.create_action(action_name, action.pretty_name, &hands)
|
||||||
|
.expect(&format!("Unable to create action: {}", action_name)),
|
||||||
|
}),
|
||||||
|
ActionType::Haptic => TypedAction::Haptic(match action.handednes {
|
||||||
|
ActionHandednes::Single => oxr_action_set
|
||||||
|
.create_action(action_name, action.pretty_name, &[])
|
||||||
|
.expect(&format!("Unable to create action: {}", action_name)),
|
||||||
|
ActionHandednes::Double => oxr_action_set
|
||||||
|
.create_action(action_name, action.pretty_name, &hands)
|
||||||
|
.expect(&format!("Unable to create action: {}", action_name)),
|
||||||
|
}),
|
||||||
|
};
|
||||||
|
actions.insert(action_name, typed_action);
|
||||||
|
for (device_path, bindings) in action.bindings.into_iter() {
|
||||||
|
for b in bindings {
|
||||||
|
info!("binding {} to {}", action_name, b);
|
||||||
|
action_bindings
|
||||||
|
.entry((set_name, action_name))
|
||||||
|
.or_default()
|
||||||
|
.entry(device_path)
|
||||||
|
.or_default()
|
||||||
|
.push(instance.string_to_path(b).unwrap());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
oxr_action_sets.push(oxr_action_set);
|
||||||
|
action_sets.sets.insert(
|
||||||
|
set_name,
|
||||||
|
ActionSet {
|
||||||
|
// oxr_action_set,
|
||||||
|
actions,
|
||||||
|
enabled: true,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
let mut b_indings: HashMap<&'static str, Vec<Binding>> = HashMap::new();
|
||||||
|
for (dev, mut bindings) in action_sets
|
||||||
|
.sets
|
||||||
|
.iter()
|
||||||
|
.flat_map(|(set_name, set)| {
|
||||||
|
set.actions
|
||||||
|
.iter()
|
||||||
|
.map(move |(action_name, a)| (set_name, action_name, a))
|
||||||
|
})
|
||||||
|
.zip([&action_bindings].into_iter().cycle())
|
||||||
|
.flat_map(move |((set_name, action_name, action), bindings)| {
|
||||||
|
bindings
|
||||||
|
.get(&(set_name.clone(), action_name.clone()))
|
||||||
|
.unwrap()
|
||||||
|
.iter()
|
||||||
|
.map(move |(dev, bindings)| (action.clone(), dev.clone(), bindings))
|
||||||
|
})
|
||||||
|
.map(|(action, dev, bindings)| {
|
||||||
|
info!("Hi");
|
||||||
|
(
|
||||||
|
dev,
|
||||||
|
bindings
|
||||||
|
.into_iter()
|
||||||
|
.map(move |binding| match &action {
|
||||||
|
TypedAction::F32(a) => Binding::new(a, *binding),
|
||||||
|
TypedAction::Bool(a) => Binding::new(a, *binding),
|
||||||
|
TypedAction::PoseF(a) => Binding::new(a, *binding),
|
||||||
|
TypedAction::Haptic(a) => Binding::new(a, *binding),
|
||||||
|
})
|
||||||
|
.collect::<Vec<_>>(),
|
||||||
|
)
|
||||||
|
})
|
||||||
|
{
|
||||||
|
b_indings.entry(dev).or_default().append(&mut bindings);
|
||||||
|
}
|
||||||
|
for (dev, bindings) in b_indings.into_iter() {
|
||||||
|
info!(dev);
|
||||||
|
instance
|
||||||
|
.suggest_interaction_profile_bindings(instance.string_to_path(dev).unwrap(), &bindings)
|
||||||
|
.expect("Unable to suggest interaction bindings!");
|
||||||
|
}
|
||||||
|
session
|
||||||
|
.attach_action_sets(&oxr_action_sets.iter().collect::<Vec<_>>())
|
||||||
|
.expect("Unable to attach action sets!");
|
||||||
|
|
||||||
|
world.insert_resource(ActionSets(oxr_action_sets));
|
||||||
|
world.insert_resource(action_sets);
|
||||||
|
}
|
||||||
|
|
||||||
|
pub enum ActionHandednes {
|
||||||
|
Single,
|
||||||
|
Double,
|
||||||
|
}
|
||||||
|
|
||||||
|
pub enum ActionType {
|
||||||
|
F32,
|
||||||
|
Bool,
|
||||||
|
PoseF,
|
||||||
|
Haptic,
|
||||||
|
}
|
||||||
|
|
||||||
|
pub enum TypedAction {
|
||||||
|
F32(Action<f32>),
|
||||||
|
Bool(Action<bool>),
|
||||||
|
PoseF(Action<Posef>),
|
||||||
|
Haptic(Action<Haptic>),
|
||||||
|
}
|
||||||
|
|
||||||
|
pub struct SetupAction {
|
||||||
|
pretty_name: &'static str,
|
||||||
|
action_type: ActionType,
|
||||||
|
handednes: ActionHandednes,
|
||||||
|
bindings: HashMap<&'static str, Vec<&'static str>>,
|
||||||
|
}
|
||||||
|
|
||||||
|
pub struct SetupActionSet {
|
||||||
|
pretty_name: &'static str,
|
||||||
|
priority: u32,
|
||||||
|
actions: HashMap<&'static str, SetupAction>,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl SetupActionSet {
|
||||||
|
pub fn new_action(
|
||||||
|
&mut self,
|
||||||
|
name: &'static str,
|
||||||
|
pretty_name: &'static str,
|
||||||
|
action_type: ActionType,
|
||||||
|
handednes: ActionHandednes,
|
||||||
|
) {
|
||||||
|
self.actions.insert(
|
||||||
|
name,
|
||||||
|
SetupAction {
|
||||||
|
pretty_name,
|
||||||
|
action_type,
|
||||||
|
handednes,
|
||||||
|
bindings: default(),
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
pub fn suggest_binding(&mut self, device_path: &'static str, bindings: &[XrBinding]) {
|
||||||
|
for binding in bindings {
|
||||||
|
self.actions
|
||||||
|
.get_mut(binding.action)
|
||||||
|
.ok_or(anyhow::anyhow!("Missing Action: {}", binding.action))
|
||||||
|
.unwrap()
|
||||||
|
.bindings
|
||||||
|
.entry(device_path)
|
||||||
|
.or_default()
|
||||||
|
.push(binding.path);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pub struct XrBinding {
|
||||||
|
action: &'static str,
|
||||||
|
path: &'static str,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl XrBinding {
|
||||||
|
pub fn new(action_name: &'static str, binding_path: &'static str) -> XrBinding {
|
||||||
|
XrBinding {
|
||||||
|
action: action_name,
|
||||||
|
path: binding_path,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Resource)]
|
||||||
|
pub struct SetupActionSets {
|
||||||
|
sets: HashMap<&'static str, SetupActionSet>,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl SetupActionSets {
|
||||||
|
pub fn add_action_set(
|
||||||
|
&mut self,
|
||||||
|
name: &'static str,
|
||||||
|
pretty_name: &'static str,
|
||||||
|
priority: u32,
|
||||||
|
) -> &mut SetupActionSet {
|
||||||
|
self.sets.insert(
|
||||||
|
name,
|
||||||
|
SetupActionSet {
|
||||||
|
pretty_name,
|
||||||
|
priority,
|
||||||
|
actions: HashMap::new(),
|
||||||
|
},
|
||||||
|
);
|
||||||
|
self.sets.get_mut(name).unwrap()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub struct ActionSet {
|
||||||
|
// oxr_action_set: xr::ActionSet,
|
||||||
|
enabled: bool,
|
||||||
|
actions: HashMap<&'static str, TypedAction>,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Resource)]
|
||||||
|
pub struct XrActionSets {
|
||||||
|
sets: HashMap<&'static str, ActionSet>,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl XrActionSets {
|
||||||
|
pub fn get_action_f32(
|
||||||
|
&self,
|
||||||
|
action_set: &'static str,
|
||||||
|
action_name: &'static str,
|
||||||
|
) -> anyhow::Result<&Action<f32>> {
|
||||||
|
let action = self
|
||||||
|
.sets
|
||||||
|
.get(action_set)
|
||||||
|
.ok_or(anyhow::anyhow!("Action Set Not Found!"))?
|
||||||
|
.actions
|
||||||
|
.get(action_name)
|
||||||
|
.ok_or(anyhow::anyhow!("Action Not Found!"))?;
|
||||||
|
match action {
|
||||||
|
TypedAction::F32(a) => Ok(a),
|
||||||
|
_ => anyhow::bail!("wrong action type"),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pub fn get_action_bool(
|
||||||
|
&self,
|
||||||
|
action_set: &'static str,
|
||||||
|
action_name: &'static str,
|
||||||
|
) -> anyhow::Result<&Action<bool>> {
|
||||||
|
let action = self
|
||||||
|
.sets
|
||||||
|
.get(action_set)
|
||||||
|
.ok_or(anyhow::anyhow!("Action Set Not Found!"))?
|
||||||
|
.actions
|
||||||
|
.get(action_name)
|
||||||
|
.ok_or(anyhow::anyhow!("Action Not Found!"))?;
|
||||||
|
match action {
|
||||||
|
TypedAction::Bool(a) => Ok(a),
|
||||||
|
_ => anyhow::bail!("wrong action type"),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pub fn get_action_posef(
|
||||||
|
&self,
|
||||||
|
action_set: &'static str,
|
||||||
|
action_name: &'static str,
|
||||||
|
) -> anyhow::Result<&Action<Posef>> {
|
||||||
|
let action = self
|
||||||
|
.sets
|
||||||
|
.get(action_set)
|
||||||
|
.ok_or(anyhow::anyhow!("Action Set Not Found!"))?
|
||||||
|
.actions
|
||||||
|
.get(action_name)
|
||||||
|
.ok_or(anyhow::anyhow!("Action Not Found!"))?;
|
||||||
|
match action {
|
||||||
|
TypedAction::PoseF(a) => Ok(a),
|
||||||
|
_ => anyhow::bail!("wrong action type"),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pub fn get_action_haptic(
|
||||||
|
&self,
|
||||||
|
action_set: &'static str,
|
||||||
|
action_name: &'static str,
|
||||||
|
) -> anyhow::Result<&Action<Haptic>> {
|
||||||
|
let action = self
|
||||||
|
.sets
|
||||||
|
.get(action_set)
|
||||||
|
.ok_or(anyhow::anyhow!("Action Set Not Found!"))?
|
||||||
|
.actions
|
||||||
|
.get(action_name)
|
||||||
|
.ok_or(anyhow::anyhow!("Action Not Found!"))?;
|
||||||
|
match action {
|
||||||
|
TypedAction::Haptic(a) => Ok(a),
|
||||||
|
_ => anyhow::bail!("wrong action type"),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -14,6 +14,7 @@ use crate::xr_input::{
|
|||||||
};
|
};
|
||||||
|
|
||||||
use super::{
|
use super::{
|
||||||
|
actions::XrActionSets,
|
||||||
handtracking::{HandTrackingRef, HandTrackingTracker},
|
handtracking::{HandTrackingRef, HandTrackingTracker},
|
||||||
trackers::{OpenXRLeftController, OpenXRRightController, OpenXRTrackingRoot},
|
trackers::{OpenXRLeftController, OpenXRRightController, OpenXRTrackingRoot},
|
||||||
QuatConv,
|
QuatConv,
|
||||||
@@ -54,8 +55,10 @@ pub fn draw_gizmos(
|
|||||||
Without<OpenXRLeftController>,
|
Without<OpenXRLeftController>,
|
||||||
Without<OpenXRTrackingRoot>,
|
Without<OpenXRTrackingRoot>,
|
||||||
)>,
|
)>,
|
||||||
hand_tracking: Res<HandTrackingTracker>,
|
hand_tracking: Option<Res<HandTrackingTracker>>,
|
||||||
|
action_sets: Res<XrActionSets>,
|
||||||
) {
|
) {
|
||||||
|
if let Some(hand_tracking) = hand_tracking {
|
||||||
let handtracking_ref = hand_tracking.get_ref(&xr_input, &frame_state);
|
let handtracking_ref = hand_tracking.get_ref(&xr_input, &frame_state);
|
||||||
if let Some(joints) = handtracking_ref.get_left_poses() {
|
if let Some(joints) = handtracking_ref.get_left_poses() {
|
||||||
for joint in joints {
|
for joint in joints {
|
||||||
@@ -88,10 +91,11 @@ pub fn draw_gizmos(
|
|||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
//lock frame
|
//lock frame
|
||||||
let frame_state = *frame_state.lock().unwrap();
|
let frame_state = *frame_state.lock().unwrap();
|
||||||
//get controller
|
//get controller
|
||||||
let controller = oculus_controller.get_ref(&instance, &session, &frame_state, &xr_input);
|
let controller = oculus_controller.get_ref(&session, &frame_state, &xr_input, &action_sets);
|
||||||
//tracking root?
|
//tracking root?
|
||||||
let mut tracking_transform = &Transform::IDENTITY;
|
let mut tracking_transform = &Transform::IDENTITY;
|
||||||
let root = tracking_root_query.get_single();
|
let root = tracking_root_query.get_single();
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ use crate::{
|
|||||||
};
|
};
|
||||||
|
|
||||||
use super::{
|
use super::{
|
||||||
|
actions::XrActionSets,
|
||||||
hand_poses::get_simulated_open_hand_transforms,
|
hand_poses::get_simulated_open_hand_transforms,
|
||||||
handtracking::HandTrackingTracker,
|
handtracking::HandTrackingTracker,
|
||||||
oculus_touch::OculusController,
|
oculus_touch::OculusController,
|
||||||
@@ -274,6 +275,7 @@ pub fn update_hand_states(
|
|||||||
xr_input: Res<XrInput>,
|
xr_input: Res<XrInput>,
|
||||||
instance: Res<XrInstance>,
|
instance: Res<XrInstance>,
|
||||||
session: Res<XrSession>,
|
session: Res<XrSession>,
|
||||||
|
action_sets: Res<XrActionSets>,
|
||||||
) {
|
) {
|
||||||
match hand_states_option {
|
match hand_states_option {
|
||||||
Some(mut hands) => {
|
Some(mut hands) => {
|
||||||
@@ -281,7 +283,7 @@ pub fn update_hand_states(
|
|||||||
let frame_state = *frame_state.lock().unwrap();
|
let frame_state = *frame_state.lock().unwrap();
|
||||||
//get controller
|
//get controller
|
||||||
let controller =
|
let controller =
|
||||||
oculus_controller.get_ref(&instance, &session, &frame_state, &xr_input);
|
oculus_controller.get_ref(&session, &frame_state, &xr_input, &action_sets);
|
||||||
|
|
||||||
//right hand
|
//right hand
|
||||||
let squeeze = controller.squeeze(Hand::Right);
|
let squeeze = controller.squeeze(Hand::Right);
|
||||||
@@ -979,7 +981,7 @@ pub fn update_hand_skeletons(
|
|||||||
Without<OpenXRTrackingRoot>,
|
Without<OpenXRTrackingRoot>,
|
||||||
)>,
|
)>,
|
||||||
input_source: Option<Res<HandInputSource>>,
|
input_source: Option<Res<HandInputSource>>,
|
||||||
hand_tracking: Res<HandTrackingTracker>,
|
hand_tracking: Option<Res<HandTrackingTracker>>,
|
||||||
xr_input: Res<XrInput>,
|
xr_input: Res<XrInput>,
|
||||||
xr_frame_state: Res<XrFrameState>,
|
xr_frame_state: Res<XrFrameState>,
|
||||||
) {
|
) {
|
||||||
@@ -1015,13 +1017,15 @@ pub fn update_hand_skeletons(
|
|||||||
None => info!("hand states resource not initialized yet"),
|
None => info!("hand states resource not initialized yet"),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
HandInputSource::OpenXr => {
|
HandInputSource::OpenXr => match hand_tracking {
|
||||||
let hand_ref = hand_tracking.get_ref(&xr_input, &xr_frame_state);
|
Some(tracking) => {
|
||||||
|
let hand_ref = tracking.get_ref(&xr_input, &xr_frame_state);
|
||||||
let (root_transform, _) = tracking_root_query.get_single().unwrap();
|
let (root_transform, _) = tracking_root_query.get_single().unwrap();
|
||||||
let left_data = hand_ref.get_left_poses();
|
let left_data = hand_ref.get_left_poses();
|
||||||
let right_data = hand_ref.get_right_poses();
|
let right_data = hand_ref.get_right_poses();
|
||||||
|
|
||||||
for (entity, mut transform, bone, hand, radius, _) in hand_bone_query.iter_mut() {
|
for (entity, mut transform, bone, hand, radius, _) in hand_bone_query.iter_mut()
|
||||||
|
{
|
||||||
let bone_data = match (hand, left_data, right_data) {
|
let bone_data = match (hand, left_data, right_data) {
|
||||||
(Hand::Left, Some(data), _) => data[bone.get_index_from_bone()],
|
(Hand::Left, Some(data), _) => data[bone.get_index_from_bone()],
|
||||||
(Hand::Right, _, Some(data)) => data[bone.get_index_from_bone()],
|
(Hand::Right, _, Some(data)) => data[bone.get_index_from_bone()],
|
||||||
@@ -1044,6 +1048,8 @@ pub fn update_hand_skeletons(
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
None => {}
|
||||||
|
},
|
||||||
},
|
},
|
||||||
None => {
|
None => {
|
||||||
info!("hand input source not initialized");
|
info!("hand input source not initialized");
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ use crate::{
|
|||||||
hand_poses::get_simulated_open_hand_transforms,
|
hand_poses::get_simulated_open_hand_transforms,
|
||||||
oculus_touch::ActionSets,
|
oculus_touch::ActionSets,
|
||||||
trackers::{OpenXRLeftController, OpenXRRightController},
|
trackers::{OpenXRLeftController, OpenXRRightController},
|
||||||
Hand,
|
Hand, InteractionProfileBindings,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -54,6 +54,7 @@ fn setup_hand_emulation_action_set(
|
|||||||
session: Res<XrSession>,
|
session: Res<XrSession>,
|
||||||
mut action_sets: ResMut<ActionSets>,
|
mut action_sets: ResMut<ActionSets>,
|
||||||
mut commands: Commands,
|
mut commands: Commands,
|
||||||
|
mut bindings: ResMut<InteractionProfileBindings>
|
||||||
) -> anyhow::Result<()> {
|
) -> anyhow::Result<()> {
|
||||||
let left_path = instance.string_to_path("/user/hand/left").unwrap();
|
let left_path = instance.string_to_path("/user/hand/left").unwrap();
|
||||||
let right_path = instance.string_to_path("/user/hand/right").unwrap();
|
let right_path = instance.string_to_path("/user/hand/right").unwrap();
|
||||||
@@ -85,7 +86,7 @@ fn setup_hand_emulation_action_set(
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
suggest_oculus_touch_profile(&instance, &hand_action_set)?;
|
suggest_oculus_touch_profile(&instance, &hand_action_set,bindings)?;
|
||||||
|
|
||||||
session.attach_action_sets(&[&action_set])?;
|
session.attach_action_sets(&[&action_set])?;
|
||||||
|
|
||||||
@@ -137,8 +138,9 @@ fn bind_single<'a, T: ActionTy>(
|
|||||||
fn suggest_oculus_touch_profile(
|
fn suggest_oculus_touch_profile(
|
||||||
i: &XrInstance,
|
i: &XrInstance,
|
||||||
action_set: &HandEmulationActionSet,
|
action_set: &HandEmulationActionSet,
|
||||||
|
mut bindings: ResMut<InteractionProfileBindings>
|
||||||
) -> anyhow::Result<()> {
|
) -> anyhow::Result<()> {
|
||||||
let mut b: Vec<Binding> = Vec::new();
|
let mut b = bindings.entry("/interaction_profiles/oculus/touch_controller").or_default();
|
||||||
bind(&action_set.thumb_x, "/thumbstick/x", i, &mut b)?;
|
bind(&action_set.thumb_x, "/thumbstick/x", i, &mut b)?;
|
||||||
bind(&action_set.thumb_y, "/thumbstick/y", i, &mut b)?;
|
bind(&action_set.thumb_y, "/thumbstick/y", i, &mut b)?;
|
||||||
bind(&action_set.thumb_touch, "/thumbstick/touch", i, &mut b)?;
|
bind(&action_set.thumb_touch, "/thumbstick/touch", i, &mut b)?;
|
||||||
|
|||||||
@@ -1,11 +1,15 @@
|
|||||||
|
use std::mem::MaybeUninit;
|
||||||
|
|
||||||
use bevy::prelude::*;
|
use bevy::prelude::*;
|
||||||
use openxr::{HandJointLocationEXT, HandTracker, Result};
|
use openxr::{HandJointLocationEXT, HandTracker, Result};
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
input::XrInput,
|
input::XrInput,
|
||||||
resources::{XrFrameState, XrSession},
|
resources::{XrFrameState, XrFrameWaiter, XrSession},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
use super::hands::HandBone;
|
||||||
|
|
||||||
#[derive(Resource)]
|
#[derive(Resource)]
|
||||||
pub struct HandTrackingTracker {
|
pub struct HandTrackingTracker {
|
||||||
left_hand: HandTracker,
|
left_hand: HandTracker,
|
||||||
@@ -40,8 +44,9 @@ pub struct HandTrackingRef<'a> {
|
|||||||
frame_state: &'a XrFrameState,
|
frame_state: &'a XrFrameState,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
impl<'a> HandTrackingRef<'a> {
|
impl<'a> HandTrackingRef<'a> {
|
||||||
pub fn get_left_poses(&self) -> Option<[HandJointLocationEXT; 26]> {
|
pub fn get_left_poses(&self) -> Option<[HandJointLocationEXT;26]> {
|
||||||
self.input
|
self.input
|
||||||
.stage
|
.stage
|
||||||
.locate_hand_joints(
|
.locate_hand_joints(
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
pub mod actions;
|
||||||
pub mod controllers;
|
pub mod controllers;
|
||||||
pub mod debug_gizmos;
|
pub mod debug_gizmos;
|
||||||
pub mod hand;
|
pub mod hand;
|
||||||
@@ -9,12 +10,11 @@ pub mod oculus_touch;
|
|||||||
pub mod prototype_locomotion;
|
pub mod prototype_locomotion;
|
||||||
pub mod trackers;
|
pub mod trackers;
|
||||||
pub mod xr_camera;
|
pub mod xr_camera;
|
||||||
pub mod actions;
|
|
||||||
|
|
||||||
use crate::resources::{XrInstance, XrSession};
|
use crate::resources::{XrInstance, XrSession};
|
||||||
use crate::xr_begin_frame;
|
use crate::xr_begin_frame;
|
||||||
use crate::xr_input::controllers::XrControllerType;
|
use crate::xr_input::controllers::XrControllerType;
|
||||||
use crate::xr_input::oculus_touch::{setup_oculus_controller, ActionSets};
|
use crate::xr_input::oculus_touch::setup_oculus_controller;
|
||||||
use crate::xr_input::xr_camera::{xr_camera_head_sync, Eye, XRProjection, XrCameraBundle};
|
use crate::xr_input::xr_camera::{xr_camera_head_sync, Eye, XRProjection, XrCameraBundle};
|
||||||
use bevy::app::{App, PostUpdate, Startup};
|
use bevy::app::{App, PostUpdate, Startup};
|
||||||
use bevy::log::warn;
|
use bevy::log::warn;
|
||||||
@@ -26,6 +26,8 @@ use bevy::transform::TransformSystem;
|
|||||||
use bevy::utils::HashMap;
|
use bevy::utils::HashMap;
|
||||||
use openxr::Binding;
|
use openxr::Binding;
|
||||||
|
|
||||||
|
use self::actions::{setup_oxr_actions, OpenXrActionsPlugin};
|
||||||
|
use self::oculus_touch::{post_action_setup_oculus_controller, ActionSets};
|
||||||
use self::trackers::{
|
use self::trackers::{
|
||||||
adopt_open_xr_trackers, update_open_xr_controllers, OpenXRLeftEye, OpenXRRightEye,
|
adopt_open_xr_trackers, update_open_xr_controllers, OpenXRLeftEye, OpenXRRightEye,
|
||||||
OpenXRTrackingRoot,
|
OpenXRTrackingRoot,
|
||||||
@@ -50,6 +52,11 @@ impl OpenXrInput {
|
|||||||
impl Plugin for OpenXrInput {
|
impl Plugin for OpenXrInput {
|
||||||
fn build(&self, app: &mut App) {
|
fn build(&self, app: &mut App) {
|
||||||
app.add_plugins(CameraProjectionPlugin::<XRProjection>::default());
|
app.add_plugins(CameraProjectionPlugin::<XRProjection>::default());
|
||||||
|
app.add_plugins(OpenXrActionsPlugin);
|
||||||
|
app.add_systems(
|
||||||
|
PreUpdate,
|
||||||
|
(post_action_setup_oculus_controller.after(setup_oxr_actions),),
|
||||||
|
);
|
||||||
match self.controller_type {
|
match self.controller_type {
|
||||||
XrControllerType::OculusTouch => {
|
XrControllerType::OculusTouch => {
|
||||||
app.add_systems(Startup, setup_oculus_controller);
|
app.add_systems(Startup, setup_oculus_controller);
|
||||||
|
|||||||
@@ -2,31 +2,73 @@ use crate::input::XrInput;
|
|||||||
use crate::resources::{XrInstance, XrSession};
|
use crate::resources::{XrInstance, XrSession};
|
||||||
use crate::xr_input::controllers::{Handed, Touchable};
|
use crate::xr_input::controllers::{Handed, Touchable};
|
||||||
use crate::xr_input::Hand;
|
use crate::xr_input::Hand;
|
||||||
use bevy::prelude::{Commands, Res, Resource};
|
use bevy::prelude::{Commands, Res, ResMut, Resource};
|
||||||
use openxr::{
|
use openxr::{
|
||||||
Action, ActionSet, AnyGraphics, Binding, FrameState, Haptic, Instance, Path, Posef, Session,
|
Action, ActionSet, AnyGraphics, Binding, FrameState, Haptic, Instance, Path, Posef, Session,
|
||||||
Space, SpaceLocation, SpaceVelocity,
|
Space, SpaceLocation, SpaceVelocity,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
use std::convert::identity;
|
||||||
use std::sync::OnceLock;
|
use std::sync::OnceLock;
|
||||||
|
|
||||||
pub fn setup_oculus_controller(
|
use super::actions::{ActionHandednes, XrActionSets, ActionType, SetupActionSets, XrBinding};
|
||||||
mut commands: Commands,
|
|
||||||
|
pub fn post_action_setup_oculus_controller(
|
||||||
|
action_sets: Res<XrActionSets>,
|
||||||
|
mut controller: ResMut<OculusController>,
|
||||||
instance: Res<XrInstance>,
|
instance: Res<XrInstance>,
|
||||||
session: Res<XrSession>,
|
session: Res<XrSession>,
|
||||||
) {
|
) {
|
||||||
let mut action_sets = vec![];
|
let s = Session::<AnyGraphics>::clone(&session);
|
||||||
let oculus_controller = OculusController::new(
|
let left_path = instance.string_to_path("/user/hand/left").unwrap();
|
||||||
Instance::clone(&instance),
|
let right_path = instance.string_to_path("/user/hand/right").unwrap();
|
||||||
Session::clone(&session),
|
let grip_action = action_sets
|
||||||
&mut action_sets,
|
.get_action_posef("oculus_input", "hand_pose")
|
||||||
|
.unwrap();
|
||||||
|
let aim_action = action_sets
|
||||||
|
.get_action_posef("oculus_input", "pointer_pose")
|
||||||
|
.unwrap();
|
||||||
|
controller.grip_space = Some(Handed {
|
||||||
|
left: grip_action
|
||||||
|
.create_space(
|
||||||
|
s.clone(),
|
||||||
|
left_path,
|
||||||
|
Posef::IDENTITY,
|
||||||
)
|
)
|
||||||
.unwrap();
|
.unwrap(),
|
||||||
session
|
right: grip_action
|
||||||
.attach_action_sets(&action_sets.iter().map(|a| a).collect::<Vec<_>>())
|
.create_space(
|
||||||
.unwrap();
|
s.clone(),
|
||||||
|
right_path,
|
||||||
|
Posef::IDENTITY,
|
||||||
|
)
|
||||||
|
.unwrap(),
|
||||||
|
});
|
||||||
|
controller.aim_space = Some(Handed {
|
||||||
|
left: aim_action
|
||||||
|
.create_space(
|
||||||
|
s.clone(),
|
||||||
|
left_path,
|
||||||
|
Posef::IDENTITY,
|
||||||
|
)
|
||||||
|
.unwrap(),
|
||||||
|
right: aim_action
|
||||||
|
.create_space(
|
||||||
|
s.clone(),
|
||||||
|
right_path,
|
||||||
|
Posef::IDENTITY,
|
||||||
|
)
|
||||||
|
.unwrap(),
|
||||||
|
})
|
||||||
|
}
|
||||||
|
pub fn setup_oculus_controller(
|
||||||
|
mut commands: Commands,
|
||||||
|
instance: Res<XrInstance>,
|
||||||
|
action_sets: ResMut<SetupActionSets>,
|
||||||
|
) {
|
||||||
|
let oculus_controller = OculusController::new(action_sets).unwrap();
|
||||||
|
init_subaction_path(&instance);
|
||||||
commands.insert_resource(oculus_controller);
|
commands.insert_resource(oculus_controller);
|
||||||
commands.insert_resource(ActionSets(action_sets));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Resource, Clone)]
|
#[derive(Resource, Clone)]
|
||||||
@@ -34,7 +76,7 @@ pub struct ActionSets(pub Vec<ActionSet>);
|
|||||||
|
|
||||||
pub struct OculusControllerRef<'a> {
|
pub struct OculusControllerRef<'a> {
|
||||||
oculus_controller: &'a OculusController,
|
oculus_controller: &'a OculusController,
|
||||||
instance: &'a Instance,
|
action_sets: &'a XrActionSets,
|
||||||
session: &'a Session<AnyGraphics>,
|
session: &'a Session<AnyGraphics>,
|
||||||
frame_state: &'a FrameState,
|
frame_state: &'a FrameState,
|
||||||
xr_input: &'a XrInput,
|
xr_input: &'a XrInput,
|
||||||
@@ -58,11 +100,11 @@ pub fn subaction_path(hand: Hand) -> Path {
|
|||||||
impl OculusControllerRef<'_> {
|
impl OculusControllerRef<'_> {
|
||||||
pub fn grip_space(&self, hand: Hand) -> (SpaceLocation, SpaceVelocity) {
|
pub fn grip_space(&self, hand: Hand) -> (SpaceLocation, SpaceVelocity) {
|
||||||
match hand {
|
match hand {
|
||||||
Hand::Left => self.oculus_controller.grip_space.left.relate(
|
Hand::Left => self.oculus_controller.grip_space.as_ref().unwrap().left.relate(
|
||||||
&self.xr_input.stage,
|
&self.xr_input.stage,
|
||||||
self.frame_state.predicted_display_time,
|
self.frame_state.predicted_display_time,
|
||||||
),
|
),
|
||||||
Hand::Right => self.oculus_controller.grip_space.right.relate(
|
Hand::Right => self.oculus_controller.grip_space.as_ref().unwrap().right.relate(
|
||||||
&self.xr_input.stage,
|
&self.xr_input.stage,
|
||||||
self.frame_state.predicted_display_time,
|
self.frame_state.predicted_display_time,
|
||||||
),
|
),
|
||||||
@@ -71,11 +113,11 @@ impl OculusControllerRef<'_> {
|
|||||||
}
|
}
|
||||||
pub fn aim_space(&self, hand: Hand) -> (SpaceLocation, SpaceVelocity) {
|
pub fn aim_space(&self, hand: Hand) -> (SpaceLocation, SpaceVelocity) {
|
||||||
match hand {
|
match hand {
|
||||||
Hand::Left => self.oculus_controller.aim_space.left.relate(
|
Hand::Left => self.oculus_controller.aim_space.as_ref().unwrap().left.relate(
|
||||||
&self.xr_input.stage,
|
&self.xr_input.stage,
|
||||||
self.frame_state.predicted_display_time,
|
self.frame_state.predicted_display_time,
|
||||||
),
|
),
|
||||||
Hand::Right => self.oculus_controller.aim_space.right.relate(
|
Hand::Right => self.oculus_controller.aim_space.as_ref().unwrap().right.relate(
|
||||||
&self.xr_input.stage,
|
&self.xr_input.stage,
|
||||||
self.frame_state.predicted_display_time,
|
self.frame_state.predicted_display_time,
|
||||||
),
|
),
|
||||||
@@ -83,102 +125,107 @@ impl OculusControllerRef<'_> {
|
|||||||
.unwrap()
|
.unwrap()
|
||||||
}
|
}
|
||||||
pub fn squeeze(&self, hand: Hand) -> f32 {
|
pub fn squeeze(&self, hand: Hand) -> f32 {
|
||||||
let action = &self.oculus_controller.squeeze;
|
let action = &self
|
||||||
|
.action_sets
|
||||||
|
.get_action_f32("oculus_input", "squeeze")
|
||||||
|
.unwrap();
|
||||||
action
|
action
|
||||||
.state(&self.session, subaction_path(hand))
|
.state(&self.session, subaction_path(hand))
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.current_state
|
.current_state
|
||||||
}
|
}
|
||||||
pub fn trigger(&self, hand: Hand) -> f32 {
|
pub fn trigger(&self, hand: Hand) -> f32 {
|
||||||
self.oculus_controller
|
self.action_sets
|
||||||
.trigger
|
.get_action_f32("oculus_input", "trigger")
|
||||||
.inner
|
.unwrap()
|
||||||
.state(&self.session, subaction_path(hand))
|
.state(&self.session, subaction_path(hand))
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.current_state
|
.current_state
|
||||||
}
|
}
|
||||||
pub fn trigger_touched(&self, hand: Hand) -> bool {
|
pub fn trigger_touched(&self, hand: Hand) -> bool {
|
||||||
self.oculus_controller
|
self.action_sets
|
||||||
.trigger
|
.get_action_bool("oculus_input", "trigger_touched")
|
||||||
.touch
|
.unwrap()
|
||||||
.state(&self.session, subaction_path(hand))
|
.state(&self.session, subaction_path(hand))
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.current_state
|
.current_state
|
||||||
}
|
}
|
||||||
pub fn x_button(&self) -> bool {
|
pub fn x_button(&self) -> bool {
|
||||||
self.oculus_controller
|
self.action_sets
|
||||||
.x_button
|
.get_action_bool("oculus_input", "x_button")
|
||||||
.inner
|
.unwrap()
|
||||||
.state(&self.session, Path::NULL)
|
.state(&self.session, Path::NULL)
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.current_state
|
.current_state
|
||||||
}
|
}
|
||||||
pub fn x_button_touched(&self) -> bool {
|
pub fn x_button_touched(&self) -> bool {
|
||||||
self.oculus_controller
|
self.action_sets
|
||||||
.x_button
|
.get_action_bool("oculus_input", "x_button_touch")
|
||||||
.touch
|
.unwrap()
|
||||||
.state(&self.session, Path::NULL)
|
.state(&self.session, Path::NULL)
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.current_state
|
.current_state
|
||||||
}
|
}
|
||||||
pub fn y_button(&self) -> bool {
|
pub fn y_button(&self) -> bool {
|
||||||
self.oculus_controller
|
self.action_sets
|
||||||
.y_button
|
.get_action_bool("oculus_input", "y_button")
|
||||||
.inner
|
.unwrap()
|
||||||
.state(&self.session, Path::NULL)
|
.state(&self.session, Path::NULL)
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.current_state
|
.current_state
|
||||||
}
|
}
|
||||||
pub fn y_button_touched(&self) -> bool {
|
pub fn y_button_touched(&self) -> bool {
|
||||||
self.oculus_controller
|
self.action_sets
|
||||||
.y_button
|
.get_action_bool("oculus_input", "y_button_touch")
|
||||||
.touch
|
.unwrap()
|
||||||
.state(&self.session, Path::NULL)
|
.state(&self.session, Path::NULL)
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.current_state
|
.current_state
|
||||||
}
|
}
|
||||||
pub fn menu_button(&self) -> bool {
|
pub fn menu_button(&self) -> bool {
|
||||||
self.oculus_controller
|
self.action_sets
|
||||||
.menu_button
|
.get_action_bool("oculus_input", "menu_button")
|
||||||
|
.unwrap()
|
||||||
.state(&self.session, Path::NULL)
|
.state(&self.session, Path::NULL)
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.current_state
|
.current_state
|
||||||
}
|
}
|
||||||
pub fn a_button(&self) -> bool {
|
pub fn a_button(&self) -> bool {
|
||||||
self.oculus_controller
|
self.action_sets
|
||||||
.a_button
|
.get_action_bool("oculus_input", "a_button")
|
||||||
.inner
|
.unwrap()
|
||||||
.state(&self.session, Path::NULL)
|
.state(&self.session, Path::NULL)
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.current_state
|
.current_state
|
||||||
}
|
}
|
||||||
pub fn a_button_touched(&self) -> bool {
|
pub fn a_button_touched(&self) -> bool {
|
||||||
self.oculus_controller
|
self.action_sets
|
||||||
.a_button
|
.get_action_bool("oculus_input", "a_button_touch")
|
||||||
.touch
|
.unwrap()
|
||||||
.state(&self.session, Path::NULL)
|
.state(&self.session, Path::NULL)
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.current_state
|
.current_state
|
||||||
}
|
}
|
||||||
pub fn b_button(&self) -> bool {
|
pub fn b_button(&self) -> bool {
|
||||||
self.oculus_controller
|
self.action_sets
|
||||||
.b_button
|
.get_action_bool("oculus_input", "b_button")
|
||||||
.inner
|
.unwrap()
|
||||||
.state(&self.session, Path::NULL)
|
.state(&self.session, Path::NULL)
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.current_state
|
.current_state
|
||||||
}
|
}
|
||||||
pub fn b_button_touched(&self) -> bool {
|
pub fn b_button_touched(&self) -> bool {
|
||||||
self.oculus_controller
|
self.action_sets
|
||||||
.b_button
|
.get_action_bool("oculus_input", "b_button_touch")
|
||||||
.touch
|
.unwrap()
|
||||||
.state(&self.session, Path::NULL)
|
.state(&self.session, Path::NULL)
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.current_state
|
.current_state
|
||||||
}
|
}
|
||||||
pub fn thumbstick_touch(&self, hand: Hand) -> bool {
|
pub fn thumbstick_touch(&self, hand: Hand) -> bool {
|
||||||
self.oculus_controller
|
self.action_sets
|
||||||
.thumbstick_touch
|
.get_action_bool("oculus_input", "thumbstick_touch")
|
||||||
|
.unwrap()
|
||||||
.state(&self.session, subaction_path(hand))
|
.state(&self.session, subaction_path(hand))
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.current_state
|
.current_state
|
||||||
@@ -186,28 +233,32 @@ impl OculusControllerRef<'_> {
|
|||||||
pub fn thumbstick(&self, hand: Hand) -> Thumbstick {
|
pub fn thumbstick(&self, hand: Hand) -> Thumbstick {
|
||||||
Thumbstick {
|
Thumbstick {
|
||||||
x: self
|
x: self
|
||||||
.oculus_controller
|
.action_sets
|
||||||
.thumbstick_x
|
.get_action_f32("oculus_input", "thumbstick_x")
|
||||||
|
.unwrap()
|
||||||
.state(&self.session, subaction_path(hand))
|
.state(&self.session, subaction_path(hand))
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.current_state,
|
.current_state,
|
||||||
y: self
|
y: self
|
||||||
.oculus_controller
|
.action_sets
|
||||||
.thumbstick_y
|
.get_action_f32("oculus_input", "thumbstick_y")
|
||||||
|
.unwrap()
|
||||||
.state(&self.session, subaction_path(hand))
|
.state(&self.session, subaction_path(hand))
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.current_state,
|
.current_state,
|
||||||
click: self
|
click: self
|
||||||
.oculus_controller
|
.action_sets
|
||||||
.thumbstick_click
|
.get_action_bool("oculus_input", "thumbstick_click")
|
||||||
|
.unwrap()
|
||||||
.state(&self.session, subaction_path(hand))
|
.state(&self.session, subaction_path(hand))
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.current_state,
|
.current_state,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
pub fn thumbrest_touch(&self, hand: Hand) -> bool {
|
pub fn thumbrest_touch(&self, hand: Hand) -> bool {
|
||||||
self.oculus_controller
|
self.action_sets
|
||||||
.thumbrest_touch
|
.get_action_bool("oculus_input", "thumbrest_touch")
|
||||||
|
.unwrap()
|
||||||
.state(&self.session, subaction_path(hand))
|
.state(&self.session, subaction_path(hand))
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.current_state
|
.current_state
|
||||||
@@ -224,244 +275,197 @@ pub struct Thumbstick {
|
|||||||
impl OculusController {
|
impl OculusController {
|
||||||
pub fn get_ref<'a>(
|
pub fn get_ref<'a>(
|
||||||
&'a self,
|
&'a self,
|
||||||
instance: &'a Instance,
|
|
||||||
session: &'a Session<AnyGraphics>,
|
session: &'a Session<AnyGraphics>,
|
||||||
frame_state: &'a FrameState,
|
frame_state: &'a FrameState,
|
||||||
xr_input: &'a XrInput,
|
xr_input: &'a XrInput,
|
||||||
|
action_sets: &'a XrActionSets,
|
||||||
) -> OculusControllerRef {
|
) -> OculusControllerRef {
|
||||||
OculusControllerRef {
|
OculusControllerRef {
|
||||||
oculus_controller: self,
|
oculus_controller: self,
|
||||||
instance,
|
|
||||||
session,
|
session,
|
||||||
frame_state,
|
frame_state,
|
||||||
xr_input,
|
xr_input,
|
||||||
|
action_sets,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Resource)]
|
#[derive(Resource)]
|
||||||
pub struct OculusController {
|
pub struct OculusController {
|
||||||
pub grip_space: Handed<Space>,
|
pub grip_space: Option<Handed<Space>>,
|
||||||
pub aim_space: Handed<Space>,
|
pub aim_space: Option<Handed<Space>>,
|
||||||
pub grip_pose: Action<Posef>,
|
|
||||||
pub aim_pose: Action<Posef>,
|
|
||||||
pub squeeze: Action<f32>,
|
|
||||||
pub trigger: Touchable<f32>,
|
|
||||||
pub haptic_feedback: Action<Haptic>,
|
|
||||||
pub x_button: Touchable<bool>,
|
|
||||||
pub y_button: Touchable<bool>,
|
|
||||||
pub menu_button: Action<bool>,
|
|
||||||
pub a_button: Touchable<bool>,
|
|
||||||
pub b_button: Touchable<bool>,
|
|
||||||
pub thumbstick_x: Action<f32>,
|
|
||||||
pub thumbstick_y: Action<f32>,
|
|
||||||
pub thumbstick_touch: Action<bool>,
|
|
||||||
pub thumbstick_click: Action<bool>,
|
|
||||||
pub thumbrest_touch: Action<bool>,
|
|
||||||
}
|
}
|
||||||
impl OculusController {
|
impl OculusController {
|
||||||
pub fn new(
|
pub fn new(mut action_sets: ResMut<SetupActionSets>) -> anyhow::Result<Self> {
|
||||||
instance: Instance,
|
|
||||||
session: Session<AnyGraphics>,
|
|
||||||
action_sets: &mut Vec<ActionSet>,
|
|
||||||
) -> anyhow::Result<Self> {
|
|
||||||
let action_set =
|
let action_set =
|
||||||
instance.create_action_set("oculus_input", "Oculus Touch Controller Input", 0)?;
|
action_sets.add_action_set("oculus_input", "Oculus Touch Controller Input", 0);
|
||||||
init_subaction_path(&instance);
|
action_set.new_action(
|
||||||
let left_path = instance.string_to_path("/user/hand/left").unwrap();
|
"hand_pose",
|
||||||
let right_path = instance.string_to_path("/user/hand/right").unwrap();
|
"Hand Pose",
|
||||||
let hands = [left_path, right_path];
|
ActionType::PoseF,
|
||||||
let grip_pose = action_set.create_action::<Posef>("hand_pose", "Hand Pose", &hands)?;
|
ActionHandednes::Double,
|
||||||
let aim_pose = action_set.create_action::<Posef>("pointer_pose", "Pointer Pose", &hands)?;
|
);
|
||||||
|
action_set.new_action(
|
||||||
let this = OculusController {
|
"pointer_pose",
|
||||||
grip_space: Handed {
|
"Pointer Pose",
|
||||||
left: grip_pose.create_space(session.clone(), left_path, Posef::IDENTITY)?,
|
ActionType::PoseF,
|
||||||
right: grip_pose.create_space(session.clone(), right_path, Posef::IDENTITY)?,
|
ActionHandednes::Double,
|
||||||
},
|
);
|
||||||
aim_space: Handed {
|
action_set.new_action(
|
||||||
left: aim_pose.create_space(session.clone(), left_path, Posef::IDENTITY)?,
|
"squeeze",
|
||||||
right: aim_pose.create_space(session.clone(), right_path, Posef::IDENTITY)?,
|
"Grip Pull",
|
||||||
},
|
ActionType::F32,
|
||||||
grip_pose,
|
ActionHandednes::Double,
|
||||||
aim_pose,
|
);
|
||||||
squeeze: action_set.create_action("squeeze", "Grip Pull", &hands)?,
|
action_set.new_action(
|
||||||
trigger: Touchable {
|
"trigger",
|
||||||
inner: action_set.create_action("trigger", "Trigger Pull", &hands)?,
|
"Trigger Pull",
|
||||||
touch: action_set.create_action("trigger_touched", "Trigger Touch", &hands)?,
|
ActionType::F32,
|
||||||
},
|
ActionHandednes::Double,
|
||||||
haptic_feedback: action_set.create_action(
|
);
|
||||||
|
action_set.new_action(
|
||||||
|
"trigger_touched",
|
||||||
|
"Trigger Touch",
|
||||||
|
ActionType::Bool,
|
||||||
|
ActionHandednes::Double,
|
||||||
|
);
|
||||||
|
action_set.new_action(
|
||||||
"haptic_feedback",
|
"haptic_feedback",
|
||||||
"Haptic Feedback",
|
"Haptic Feedback",
|
||||||
&hands,
|
ActionType::Haptic,
|
||||||
)?,
|
ActionHandednes::Double,
|
||||||
x_button: Touchable {
|
);
|
||||||
inner: action_set.create_action("x_button", "X Button", &[])?,
|
action_set.new_action(
|
||||||
touch: action_set.create_action("x_button_touch", "X Button Touch", &[])?,
|
"x_button",
|
||||||
},
|
"X Button",
|
||||||
y_button: Touchable {
|
ActionType::Bool,
|
||||||
inner: action_set.create_action("y_button", "Y Button", &[])?,
|
ActionHandednes::Single,
|
||||||
touch: action_set.create_action("y_button_touch", "Y Button Touch", &[])?,
|
);
|
||||||
},
|
action_set.new_action(
|
||||||
menu_button: action_set.create_action("menu_button", "Menu Button", &[])?,
|
"x_button_touch",
|
||||||
a_button: Touchable {
|
"X Button Touch",
|
||||||
inner: action_set.create_action("a_button", "A Button", &[])?,
|
ActionType::Bool,
|
||||||
touch: action_set.create_action("a_button_touch", "A Button Touch", &[])?,
|
ActionHandednes::Single,
|
||||||
},
|
);
|
||||||
b_button: Touchable {
|
action_set.new_action(
|
||||||
inner: action_set.create_action("b_button", "B Button", &[])?,
|
"y_button",
|
||||||
touch: action_set.create_action("b_button_touch", "B Button Touch", &[])?,
|
"Y Button",
|
||||||
},
|
ActionType::Bool,
|
||||||
thumbstick_x: action_set.create_action("thumbstick_x", "Thumbstick X", &hands)?,
|
ActionHandednes::Single,
|
||||||
thumbstick_y: action_set.create_action("thumbstick_y", "Thumbstick Y", &hands)?,
|
);
|
||||||
thumbstick_touch: action_set.create_action(
|
action_set.new_action(
|
||||||
|
"y_button_touch",
|
||||||
|
"Y Button Touch",
|
||||||
|
ActionType::Bool,
|
||||||
|
ActionHandednes::Single,
|
||||||
|
);
|
||||||
|
action_set.new_action(
|
||||||
|
"a_button",
|
||||||
|
"A Button",
|
||||||
|
ActionType::Bool,
|
||||||
|
ActionHandednes::Single,
|
||||||
|
);
|
||||||
|
action_set.new_action(
|
||||||
|
"a_button_touch",
|
||||||
|
"A Button Touch",
|
||||||
|
ActionType::Bool,
|
||||||
|
ActionHandednes::Single,
|
||||||
|
);
|
||||||
|
action_set.new_action(
|
||||||
|
"b_button",
|
||||||
|
"B Button",
|
||||||
|
ActionType::Bool,
|
||||||
|
ActionHandednes::Single,
|
||||||
|
);
|
||||||
|
action_set.new_action(
|
||||||
|
"b_button_touch",
|
||||||
|
"B Button Touch",
|
||||||
|
ActionType::Bool,
|
||||||
|
ActionHandednes::Single,
|
||||||
|
);
|
||||||
|
action_set.new_action(
|
||||||
|
"menu_button",
|
||||||
|
"Menu Button",
|
||||||
|
ActionType::Bool,
|
||||||
|
ActionHandednes::Single,
|
||||||
|
);
|
||||||
|
action_set.new_action(
|
||||||
|
"thumbstick_x",
|
||||||
|
"Thumbstick X",
|
||||||
|
ActionType::F32,
|
||||||
|
ActionHandednes::Double,
|
||||||
|
);
|
||||||
|
action_set.new_action(
|
||||||
|
"thumbstick_y",
|
||||||
|
"Thumbstick y",
|
||||||
|
ActionType::F32,
|
||||||
|
ActionHandednes::Double,
|
||||||
|
);
|
||||||
|
action_set.new_action(
|
||||||
"thumbstick_touch",
|
"thumbstick_touch",
|
||||||
"Thumbstick Touch",
|
"Thumbstick Touch",
|
||||||
&hands,
|
ActionType::Bool,
|
||||||
)?,
|
ActionHandednes::Double,
|
||||||
thumbstick_click: action_set.create_action(
|
);
|
||||||
|
action_set.new_action(
|
||||||
"thumbstick_click",
|
"thumbstick_click",
|
||||||
"Thumbstick Click",
|
"Thumbstick Click",
|
||||||
&hands,
|
ActionType::Bool,
|
||||||
)?,
|
ActionHandednes::Double,
|
||||||
thumbrest_touch: action_set.create_action(
|
);
|
||||||
|
action_set.new_action(
|
||||||
"thumbrest_touch",
|
"thumbrest_touch",
|
||||||
"Thumbrest Touch",
|
"Thumbrest Touch",
|
||||||
&hands,
|
ActionType::Bool,
|
||||||
)?,
|
ActionHandednes::Double,
|
||||||
};
|
);
|
||||||
let i = instance;
|
|
||||||
i.suggest_interaction_profile_bindings(
|
|
||||||
i.string_to_path("/interaction_profiles/oculus/touch_controller")?,
|
|
||||||
&[
|
|
||||||
Binding::new(
|
|
||||||
&this.grip_pose,
|
|
||||||
i.string_to_path("/user/hand/left/input/grip/pose")?,
|
|
||||||
),
|
|
||||||
Binding::new(
|
|
||||||
&this.grip_pose,
|
|
||||||
i.string_to_path("/user/hand/right/input/grip/pose")?,
|
|
||||||
),
|
|
||||||
Binding::new(
|
|
||||||
&this.aim_pose,
|
|
||||||
i.string_to_path("/user/hand/left/input/aim/pose")?,
|
|
||||||
),
|
|
||||||
Binding::new(
|
|
||||||
&this.aim_pose,
|
|
||||||
i.string_to_path("/user/hand/left/input/aim/pose")?,
|
|
||||||
),
|
|
||||||
Binding::new(
|
|
||||||
&this.squeeze,
|
|
||||||
i.string_to_path("/user/hand/left/input/squeeze/value")?,
|
|
||||||
),
|
|
||||||
Binding::new(
|
|
||||||
&this.squeeze,
|
|
||||||
i.string_to_path("/user/hand/right/input/squeeze/value")?,
|
|
||||||
),
|
|
||||||
Binding::new(
|
|
||||||
&this.trigger.inner,
|
|
||||||
i.string_to_path("/user/hand/right/input/trigger/value")?,
|
|
||||||
),
|
|
||||||
Binding::new(
|
|
||||||
&this.trigger.inner,
|
|
||||||
i.string_to_path("/user/hand/left/input/trigger/value")?,
|
|
||||||
),
|
|
||||||
Binding::new(
|
|
||||||
&this.trigger.touch,
|
|
||||||
i.string_to_path("/user/hand/right/input/trigger/touch")?,
|
|
||||||
),
|
|
||||||
Binding::new(
|
|
||||||
&this.trigger.touch,
|
|
||||||
i.string_to_path("/user/hand/left/input/trigger/touch")?,
|
|
||||||
),
|
|
||||||
Binding::new(
|
|
||||||
&this.haptic_feedback,
|
|
||||||
i.string_to_path("/user/hand/right/output/haptic")?,
|
|
||||||
),
|
|
||||||
Binding::new(
|
|
||||||
&this.haptic_feedback,
|
|
||||||
i.string_to_path("/user/hand/left/output/haptic")?,
|
|
||||||
),
|
|
||||||
Binding::new(
|
|
||||||
&this.x_button.inner,
|
|
||||||
i.string_to_path("/user/hand/left/input/x/click")?,
|
|
||||||
),
|
|
||||||
Binding::new(
|
|
||||||
&this.x_button.touch,
|
|
||||||
i.string_to_path("/user/hand/left/input/x/touch")?,
|
|
||||||
),
|
|
||||||
Binding::new(
|
|
||||||
&this.y_button.inner,
|
|
||||||
i.string_to_path("/user/hand/left/input/y/click")?,
|
|
||||||
),
|
|
||||||
Binding::new(
|
|
||||||
&this.y_button.touch,
|
|
||||||
i.string_to_path("/user/hand/left/input/y/touch")?,
|
|
||||||
),
|
|
||||||
Binding::new(
|
|
||||||
&this.menu_button,
|
|
||||||
i.string_to_path("/user/hand/left/input/menu/click")?,
|
|
||||||
),
|
|
||||||
Binding::new(
|
|
||||||
&this.a_button.inner,
|
|
||||||
i.string_to_path("/user/hand/right/input/a/click")?,
|
|
||||||
),
|
|
||||||
Binding::new(
|
|
||||||
&this.a_button.touch,
|
|
||||||
i.string_to_path("/user/hand/right/input/a/touch")?,
|
|
||||||
),
|
|
||||||
Binding::new(
|
|
||||||
&this.b_button.inner,
|
|
||||||
i.string_to_path("/user/hand/right/input/b/click")?,
|
|
||||||
),
|
|
||||||
Binding::new(
|
|
||||||
&this.b_button.touch,
|
|
||||||
i.string_to_path("/user/hand/right/input/b/touch")?,
|
|
||||||
),
|
|
||||||
Binding::new(
|
|
||||||
&this.thumbstick_x,
|
|
||||||
i.string_to_path("/user/hand/left/input/thumbstick/x")?,
|
|
||||||
),
|
|
||||||
Binding::new(
|
|
||||||
&this.thumbstick_x,
|
|
||||||
i.string_to_path("/user/hand/right/input/thumbstick/x")?,
|
|
||||||
),
|
|
||||||
Binding::new(
|
|
||||||
&this.thumbstick_y,
|
|
||||||
i.string_to_path("/user/hand/left/input/thumbstick/y")?,
|
|
||||||
),
|
|
||||||
Binding::new(
|
|
||||||
&this.thumbstick_y,
|
|
||||||
i.string_to_path("/user/hand/right/input/thumbstick/y")?,
|
|
||||||
),
|
|
||||||
Binding::new(
|
|
||||||
&this.thumbstick_click,
|
|
||||||
i.string_to_path("/user/hand/left/input/thumbstick/click")?,
|
|
||||||
),
|
|
||||||
Binding::new(
|
|
||||||
&this.thumbstick_click,
|
|
||||||
i.string_to_path("/user/hand/right/input/thumbstick/click")?,
|
|
||||||
),
|
|
||||||
Binding::new(
|
|
||||||
&this.thumbstick_touch,
|
|
||||||
i.string_to_path("/user/hand/left/input/thumbstick/touch")?,
|
|
||||||
),
|
|
||||||
Binding::new(
|
|
||||||
&this.thumbstick_touch,
|
|
||||||
i.string_to_path("/user/hand/right/input/thumbstick/touch")?,
|
|
||||||
),
|
|
||||||
Binding::new(
|
|
||||||
&this.thumbrest_touch,
|
|
||||||
i.string_to_path("/user/hand/left/input/thumbrest/touch")?,
|
|
||||||
),
|
|
||||||
Binding::new(
|
|
||||||
&this.thumbrest_touch,
|
|
||||||
i.string_to_path("/user/hand/right/input/thumbrest/touch")?,
|
|
||||||
),
|
|
||||||
],
|
|
||||||
)?;
|
|
||||||
|
|
||||||
action_sets.push(action_set);
|
let this = OculusController {
|
||||||
|
grip_space: None,
|
||||||
|
aim_space: None,
|
||||||
|
};
|
||||||
|
action_set.suggest_binding(
|
||||||
|
"/interaction_profiles/oculus/touch_controller",
|
||||||
|
&[
|
||||||
|
XrBinding::new("hand_pose", "/user/hand/left/input/grip/pose"),
|
||||||
|
XrBinding::new("hand_pose", "/user/hand/right/input/grip/pose"),
|
||||||
|
XrBinding::new("pointer_pose", "/user/hand/left/input/aim/pose"),
|
||||||
|
XrBinding::new("pointer_pose", "/user/hand/right/input/aim/pose"),
|
||||||
|
XrBinding::new("squeeze", "/user/hand/left/input/squeeze/value"),
|
||||||
|
XrBinding::new("squeeze", "/user/hand/right/input/squeeze/value"),
|
||||||
|
XrBinding::new("trigger", "/user/hand/left/input/trigger/value"),
|
||||||
|
XrBinding::new("trigger", "/user/hand/right/input/trigger/value"),
|
||||||
|
XrBinding::new("trigger_touched", "/user/hand/left/input/trigger/touch"),
|
||||||
|
XrBinding::new("trigger_touched", "/user/hand/right/input/trigger/touch"),
|
||||||
|
XrBinding::new("haptic_feedback", "/user/hand/left/output/haptic"),
|
||||||
|
XrBinding::new("haptic_feedback", "/user/hand/right/output/haptic"),
|
||||||
|
XrBinding::new("x_button", "/user/hand/left/input/x/click"),
|
||||||
|
XrBinding::new("x_button_touch", "/user/hand/left/input/x/touch"),
|
||||||
|
XrBinding::new("y_button", "/user/hand/left/input/y/click"),
|
||||||
|
XrBinding::new("y_button_touch", "/user/hand/left/input/y/touch"),
|
||||||
|
XrBinding::new("a_button", "/user/hand/right/input/a/click"),
|
||||||
|
XrBinding::new("a_button_touch", "/user/hand/right/input/a/touch"),
|
||||||
|
XrBinding::new("b_button", "/user/hand/right/input/b/click"),
|
||||||
|
XrBinding::new("b_button_touch", "/user/hand/right/input/b/touch"),
|
||||||
|
XrBinding::new("menu_button", "/user/hand/left/input/menu/click"),
|
||||||
|
XrBinding::new("thumbstick_x", "/user/hand/left/input/thumbstick/x"),
|
||||||
|
XrBinding::new("thumbstick_y", "/user/hand/left/input/thumbstick/y"),
|
||||||
|
XrBinding::new("thumbstick_x", "/user/hand/right/input/thumbstick/x"),
|
||||||
|
XrBinding::new("thumbstick_y", "/user/hand/right/input/thumbstick/y"),
|
||||||
|
XrBinding::new("thumbstick_click", "/user/hand/left/input/thumbstick/click"),
|
||||||
|
XrBinding::new(
|
||||||
|
"thumbstick_click",
|
||||||
|
"/user/hand/right/input/thumbstick/click",
|
||||||
|
),
|
||||||
|
XrBinding::new("thumbstick_touch", "/user/hand/left/input/thumbstick/touch"),
|
||||||
|
XrBinding::new(
|
||||||
|
"thumbstick_touch",
|
||||||
|
"/user/hand/right/input/thumbstick/touch",
|
||||||
|
),
|
||||||
|
XrBinding::new("thumbrest_touch", "/user/hand/left/input/thumbrest/touch"),
|
||||||
|
XrBinding::new("thumbrest_touch", "/user/hand/right/input/thumbrest/touch"),
|
||||||
|
],
|
||||||
|
);
|
||||||
Ok(this)
|
Ok(this)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,8 @@ use crate::{
|
|||||||
};
|
};
|
||||||
|
|
||||||
use super::{
|
use super::{
|
||||||
oculus_touch::OculusController, trackers::OpenXRTrackingRoot, Hand, QuatConv, Vec3Conv,
|
actions::XrActionSets, oculus_touch::OculusController, trackers::OpenXRTrackingRoot, Hand,
|
||||||
|
QuatConv, Vec3Conv,
|
||||||
};
|
};
|
||||||
|
|
||||||
pub enum LocomotionType {
|
pub enum LocomotionType {
|
||||||
@@ -67,6 +68,7 @@ pub fn proto_locomotion(
|
|||||||
views: ResMut<XrViews>,
|
views: ResMut<XrViews>,
|
||||||
mut gizmos: Gizmos,
|
mut gizmos: Gizmos,
|
||||||
config_option: Option<ResMut<PrototypeLocomotionConfig>>,
|
config_option: Option<ResMut<PrototypeLocomotionConfig>>,
|
||||||
|
action_sets: Res<XrActionSets>,
|
||||||
) {
|
) {
|
||||||
match config_option {
|
match config_option {
|
||||||
Some(_) => (),
|
Some(_) => (),
|
||||||
@@ -80,7 +82,7 @@ pub fn proto_locomotion(
|
|||||||
//lock frame
|
//lock frame
|
||||||
let frame_state = *frame_state.lock().unwrap();
|
let frame_state = *frame_state.lock().unwrap();
|
||||||
//get controller
|
//get controller
|
||||||
let controller = oculus_controller.get_ref(&instance, &session, &frame_state, &xr_input);
|
let controller = oculus_controller.get_ref(&session, &frame_state, &xr_input, &action_sets);
|
||||||
let root = tracking_root_query.get_single_mut();
|
let root = tracking_root_query.get_single_mut();
|
||||||
match root {
|
match root {
|
||||||
Ok(mut position) => {
|
Ok(mut position) => {
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ use crate::{
|
|||||||
resources::{XrFrameState, XrInstance, XrSession},
|
resources::{XrFrameState, XrInstance, XrSession},
|
||||||
};
|
};
|
||||||
|
|
||||||
use super::{oculus_touch::OculusController, Hand, QuatConv, Vec3Conv};
|
use super::{actions::XrActionSets, oculus_touch::OculusController, Hand, QuatConv, Vec3Conv};
|
||||||
|
|
||||||
#[derive(Component)]
|
#[derive(Component)]
|
||||||
pub struct OpenXRTrackingRoot;
|
pub struct OpenXRTrackingRoot;
|
||||||
@@ -62,14 +62,14 @@ pub fn update_open_xr_controllers(
|
|||||||
Without<OpenXRLeftController>,
|
Without<OpenXRLeftController>,
|
||||||
)>,
|
)>,
|
||||||
frame_state: Res<XrFrameState>,
|
frame_state: Res<XrFrameState>,
|
||||||
instance: Res<XrInstance>,
|
|
||||||
xr_input: Res<XrInput>,
|
xr_input: Res<XrInput>,
|
||||||
session: Res<XrSession>,
|
session: Res<XrSession>,
|
||||||
|
action_sets: Res<XrActionSets>,
|
||||||
) {
|
) {
|
||||||
//lock dat frame?
|
//lock dat frame?
|
||||||
let frame_state = *frame_state.lock().unwrap();
|
let frame_state = *frame_state.lock().unwrap();
|
||||||
//get controller
|
//get controller
|
||||||
let controller = oculus_controller.get_ref(&instance, &session, &frame_state, &xr_input);
|
let controller = oculus_controller.get_ref(&session, &frame_state, &xr_input, &action_sets);
|
||||||
//get left controller
|
//get left controller
|
||||||
let left_grip_space = controller.grip_space(Hand::Left);
|
let left_grip_space = controller.grip_space(Hand::Left);
|
||||||
let left_aim_space = controller.aim_space(Hand::Left);
|
let left_aim_space = controller.aim_space(Hand::Left);
|
||||||
|
|||||||
Reference in New Issue
Block a user