overte icon indicating copy to clipboard operation
overte copied to clipboard

Using Overte with Wivrn on my laptop: segmentation fault

Open M0Rf30 opened this issue 1 year ago • 7 comments

Hi and thanks for this great software. I'm trying to launch overte appimage using Wivrn. I'm using

  • wivrn official flatpak 0.22
  • overte official appimage 2024.11.1

Wivrn is successfully connected to the Quest 3

This is what happens on Overte side log.txt

Let me know if I can retrieve some other useful details

M0Rf30 avatar Dec 08 '24 13:12 M0Rf30

What GPU and driver version do you have? If Nvidia drivers, then are you using Vulkan layer described here? https://lvra.gitlab.io/docs/hardware/

It looks like segfault is caused by Opencomposite failing to start. Opencomposite fails to create Vulkan instance, so this would also be really worth reporting to Opencomposite maintainers. Here's the relevant part of the log:

LOG in xrCreateInstance: Instance created
        createInfo->applicationInfo.applicationName: OpenComposite_interface
        createInfo->applicationInfo.applicationVersion: 1
        createInfo->applicationInfo.engineName:
        createInfo->applicationInfo.engineVersion: 0
        createInfo->applicationInfo.apiVersion: 1.0.12
        appinfo.detected.engine.name: (null)
        appinfo.detected.engine.version: 0.0.0
        quirks.disable_vulkan_format_depth_stencil: false
        quirks.no_validation_error_in_create_ref_space: true
        quirks.skip_end_session: false
        quirks.parallel_views: false

LOG in xrCreateInstance: Selected devices
        Head: 'WiVRn HMD'
        Eyes: '<none>'
        Left: 'WiVRn HMD left hand controller'
        Right: 'WiVRn HMD right hand controller'
        Gamepad: '<none>'
        Hand-Tracking Left: 'WiVRn HMD left hand controller'
        Hand-Tracking Right: 'WiVRn HMD right hand controller'
[OC] Config:226          Checking for app specific config file...
[OC] wini_parse:167      No config file found at /home/gianluca/opencomposite.ini
[OC] CheckAppEnabled:59          [once] Launcher configuration not yet supported on Linux
[OC] GetXRAppName:59     Setting application name to OpenComposite_interface
LOG in xrCreateInstance: Instance created
        createInfo->applicationInfo.applicationName: OpenComposite_interface
        createInfo->applicationInfo.applicationVersion: 1
        createInfo->applicationInfo.engineName:
        createInfo->applicationInfo.engineVersion: 0
        createInfo->applicationInfo.apiVersion: 1.0.12
        appinfo.detected.engine.name: (null)
        appinfo.detected.engine.version: 0.0.0
        quirks.disable_vulkan_format_depth_stencil: false
        quirks.no_validation_error_in_create_ref_space: true
        quirks.skip_end_session: false
        quirks.parallel_views: false

LOG in xrCreateInstance: Selected devices
        Head: 'WiVRn HMD'
        Eyes: '<none>'
        Left: 'WiVRn HMD left hand controller'
        Right: 'WiVRn HMD right hand controller'
        Gamepad: '<none>'
        Hand-Tracking Left: 'WiVRn HMD left hand controller'
        Hand-Tracking Right: 'WiVRn HMD right hand controller'
[OC] Config:226          Checking for app specific config file...
[OC] wini_parse:167      No config file found at /home/gianluca/opencomposite.ini
[OC] CheckAppEnabled:59          [once] Launcher configuration not yet supported on Linux
[OC] VR_InitInternal2:223        [once] Initializing OpenComposite - revision 34311da-dirty (Wrap calls involving cached views in a mutex, 2024-11-11)
[OC] CreateOpenXRBackend:149     Extension: XR_KHR_binding_modification
[OC] CreateOpenXRBackend:149     Extension: XR_KHR_composition_layer_cylinder
[OC] CreateOpenXRBackend:149     Extension: XR_KHR_composition_layer_depth
[OC] CreateOpenXRBackend:149     Extension: XR_KHR_composition_layer_equirect2
[OC] CreateOpenXRBackend:149     Extension: XR_KHR_convert_timespec_time
[OC] CreateOpenXRBackend:149     Extension: XR_KHR_locate_spaces
[OC] CreateOpenXRBackend:149     Extension: XR_KHR_maintenance1
[OC] CreateOpenXRBackend:149     Extension: XR_KHR_opengl_enable
[OC] CreateOpenXRBackend:149     Extension: XR_KHR_opengl_es_enable
[OC] CreateOpenXRBackend:149     Extension: XR_KHR_swapchain_usage_input_attachment_bit
[OC] CreateOpenXRBackend:149     Extension: XR_KHR_visibility_mask
[OC] CreateOpenXRBackend:149     Extension: XR_KHR_vulkan_enable
[OC] CreateOpenXRBackend:149     Extension: XR_KHR_vulkan_enable2
[OC] CreateOpenXRBackend:149     Extension: XR_KHR_vulkan_swapchain_format_list
[OC] CreateOpenXRBackend:149     Extension: XR_EXT_active_action_set_priority
[OC] CreateOpenXRBackend:149     Extension: XR_EXT_dpad_binding
[OC] CreateOpenXRBackend:149     Extension: XR_EXT_eye_gaze_interaction
[OC] CreateOpenXRBackend:149     Extension: XR_EXT_hand_interaction
[OC] CreateOpenXRBackend:149     Extension: XR_EXT_hand_tracking
[OC] CreateOpenXRBackend:149     Extension: XR_EXT_hp_mixed_reality_controller
[OC] CreateOpenXRBackend:149     Extension: XR_EXT_local_floor
[OC] CreateOpenXRBackend:149     Extension: XR_EXT_palm_pose
[OC] CreateOpenXRBackend:149     Extension: XR_EXT_samsung_odyssey_controller
[OC] CreateOpenXRBackend:149     Extension: XR_BD_controller_interaction
[OC] CreateOpenXRBackend:149     Extension: XR_FB_face_tracking2
[OC] CreateOpenXRBackend:149     Extension: XR_FB_display_refresh_rate
[OC] CreateOpenXRBackend:149     Extension: XR_FB_touch_controller_pro
[OC] CreateOpenXRBackend:149     Extension: XR_FB_touch_controller_proximity
[OC] CreateOpenXRBackend:149     Extension: XR_META_touch_controller_plus
[OC] CreateOpenXRBackend:149     Extension: XR_ML_ml2_controller_interaction
[OC] CreateOpenXRBackend:149     Extension: XR_MND_headless
[OC] CreateOpenXRBackend:149     Extension: XR_MND_swapchain_usage_input_attachment_bit
[OC] CreateOpenXRBackend:149     Extension: XR_MSFT_unbounded_reference_space
[OC] CreateOpenXRBackend:149     Extension: XR_OPPO_controller_interaction
[OC] CreateOpenXRBackend:149     Extension: XR_EXTX_overlay
[OC] CreateOpenXRBackend:149     Extension: XR_HTC_vive_cosmos_controller_interaction
[OC] CreateOpenXRBackend:149     Extension: XR_HTC_vive_focus3_controller_interaction
[OC] CreateOpenXRBackend:149     Extension: XR_MNDX_ball_on_a_stick_controller
[OC] CreateOpenXRBackend:149     Extension: XR_MNDX_egl_enable
[OC] CreateOpenXRBackend:149     Extension: XR_MNDX_force_feedback_curl
[OC] CreateOpenXRBackend:149     Extension: XR_MNDX_hydra
[OC] CreateOpenXRBackend:149     Extension: XR_MNDX_system_buttons
[OC] CreateOpenXRBackend:149     Extension: XR_MNDX_xdev_space
[OC] CreateOpenXRBackend:149     Extension: XR_EXT_debug_utils
[OC] CreateOpenXRBackend:154     Num layers available: 2
[OC] CreateOpenXRBackend:162     Layer: XR_APILAYER_LUNARG_api_dump
[OC] CreateOpenXRBackend:162     Layer: XR_APILAYER_LUNARG_core_validation
[OC] GetXRAppName:59     Setting application name to OpenComposite_interface
LOG in xrCreateInstance: Instance created
        createInfo->applicationInfo.applicationName: OpenComposite_interface
        createInfo->applicationInfo.applicationVersion: 1
        createInfo->applicationInfo.engineName:
        createInfo->applicationInfo.engineVersion: 0
        createInfo->applicationInfo.apiVersion: 1.0.0
        appinfo.detected.engine.name: (null)
        appinfo.detected.engine.version: 0.0.0
        quirks.disable_vulkan_format_depth_stencil: false
        quirks.no_validation_error_in_create_ref_space: true
        quirks.skip_end_session: false
        quirks.parallel_views: false

LOG in xrCreateInstance: Selected devices
        Head: 'WiVRn HMD'
        Eyes: '<none>'
        Left: 'WiVRn HMD left hand controller'
        Right: 'WiVRn HMD right hand controller'
        Gamepad: '<none>'
        Hand-Tracking Left: 'WiVRn HMD left hand controller'
        Hand-Tracking Right: 'WiVRn HMD right hand controller'
[OC] parseExtensionsStr:14       Str: VK_KHR_external_fence_capabilities VK_KHR_external_memory_capabilities VK_KHR_external_semaphore_capabilities VK_KHR_get_physical_device_properties2
[OC] parseExtensionsStr:30       Add extension: VK_KHR_external_fence_capabilities
[OC] parseExtensionsStr:30       Add extension: VK_KHR_external_memory_capabilities
[OC] parseExtensionsStr:30       Add extension: VK_KHR_external_semaphore_capabilities
[OC] parseExtensionsStr:30       Add extension: VK_KHR_get_physical_device_properties2
[OC] oovr_abort_raw_va:206       Abort!
[OC] TemporaryVk:62      Vulkan Call failed, aborting. /run/build/opencomposite/DrvOpenXR/tmp_gfx/TemporaryVk.cpp:62 TemporaryVk. Error code: -9
vkCreateInstance(&createInfo, nullptr, &instance)
zenity è /usr/bin/zenity
zenity: symbol lookup error: /usr/lib/libgobject-2.0.so.0: undefined symbol: g_pointer_bit_unlock_and_set
OOVR_MESSAGE: OpenComposite Error - info in log: Vulkan Call failed, aborting. /run/build/opencomposite/DrvOpenXR/tmp_gfx/TemporaryVk.cpp:62 TemporaryVk. Error code: -9
vkCreateInstance(&createInfo, nullptr, &instance)

ksuprynowicz avatar Dec 09 '24 17:12 ksuprynowicz

I am marking this as question, since this appears to be an issue with OpenComposite. Overte itself appears to be getting terminated by OpenComposite rather than crashing.

OOVR_MESSAGE: OpenComposite Error - info in log: Vulkan Call failed, aborting. /run/build/opencomposite/DrvOpenXR/tmp_gfx/TemporaryVk.cpp:62 TemporaryVk. Error code: -9
vkCreateInstance(&createInfo, nullptr, &instance)
fish: Job 1, '~/Scaricati/Overte-2024.11.1-x8…' terminated by signal SIGABRT (Abort)

Last time I tried OpenComposite myself, it didn't crash like this. One thing you could try is to get WiVRn through Envision rather than Flatpak: https://gitlab.com/gabmus/envision/ That way we can rule out that Flatpak is causing problems.

JulianGro avatar Dec 15 '24 13:12 JulianGro

Ada has a temporary workaround for this. Quoting from Discord post:

the TemporaryVk crash in opencomposite is because it's trying to load a non-existent vulkan driver inside the appimage's libraries, you can work around it by extracting the appimage and modifying the LD_LIBRARY_PATH line in AppRun to also include your system /usr/lib64 directory (though with that it seems like it might also need qt5-webengine installed on your system?)

ksuprynowicz avatar Dec 15 '24 14:12 ksuprynowicz

Need to do other debug, what I can say is that I tried with latest overte commits compiled with nix and there's no segmentation fault, although the video is not correctly shown in the VR device. I will give other details in the next days

M0Rf30 avatar Dec 15 '24 19:12 M0Rf30

I managed to run overte on meta quest 3 with wivrn, doing this

./Overte-2024.11.1-x86_64.AppImage --appimage-extract
cd squash-root
sed -i 's|LD_LIBRARY_PATH=\$curdir/usr/lib64|LD_LIBRARY_PATH=/usr/lib|' AppRun
./AppRun

Of course I have all the libraries required under /usr/lib

Amazing

M0Rf30 avatar Jan 03 '25 17:01 M0Rf30

I tried the above command and got this error

./overte/interface/interface: symbol lookup error: /home/kit/Downloads/Overte/squashfs-root/overte/interface/../libraries/material-networking/libmaterial-networking.so: undefined symbol: TEXTURE_META_EXTENSION

Anybody know which library I need on Arch?

Mhowser avatar Jan 19 '25 20:01 Mhowser

I appear to be getting a similar failure when launching in VR. Launches fine in desktop mode.

Overte-2025.03.1-x86_64.AppImage WiVRn Flatpak commit a82cd97 (https://github.com/notpeelz/WiVRn/actions/runs/13004448600) (branch for FBT)

Operating System: Bazzite 41 KDE Plasma Version: 6.2.5 KDE Frameworks Version: 6.10.0 Qt Version: 6.8.1 Kernel Version: 6.12.12-203.bazzite.fc41.x86_64 (64-bit) Graphics Platform: Wayland Processors: 16 × AMD Ryzen 7 5800X3D 8-Core Processor Memory: 31.3 GiB of RAM Graphics Processor: AMD Radeon RX 7900 XTX

Logs from running Appimage: error.log

Logs after trying to replace the library path using above: error-patched.log -> I'm thinking the flatpaks on Fedora have a different path they store the libraries at?

ssmucny avatar Mar 12 '25 05:03 ssmucny

I tried the fix mentioned earlier, but got this error:

[default] QXcbIntegration: Cannot create platform OpenGL context, neither GLX nor EGL are enabled

AntiApple4life avatar Jun 10 '25 02:06 AntiApple4life

Please try the --useExperimentalXR command line argument to use OpenXR instead. E.g.: Overte-2025.05.1-x86_64.AppImage --useExperimentalXR.

JulianGro avatar Jun 10 '25 06:06 JulianGro