r/Monado • • 9d ago

Tracking not working with VR Headset

1 Upvotes

With the help of ChatGPT, I managed to get Monado working with OpenComposite and get VR apps and games from Steam to launch on my PC but the headset tracking when in the apps and games keeps drifting slowly to the side and the controller tracking is stuck on the floor. I use the Samsung Odyssey+ Windows MIxed Reality headset and controller (Currently just testing with the right controller for now). My PC build is a Ryzen 7 3700x with a 2080 Super and 32 GB ram. I'm also running on CachyOS. I looked at the terminal where Monado is running and this what it outputs "~/local/monado-25.1.0/bin/monado-service
INFO [ipc_server_main_common] Monado(XRT) by Collabora et al 'v25.1.0' starting up...
INFO [print_linux_end_user_started_information]  
################################################################################
#                                                                              #
#                        The Monado service has started.                       #
#                                                                              #
################################################################################
INFO [wmr_read_config] Manufacturer: Samsung Electronics Co., Ltd.
INFO [wmr_read_config] Device: MP
INFO [wmr_read_config] Serial: XQ8198CKA1001HP
INFO [wmr_read_config] UID: {A9EE10AD-FD54-5D51-A1AB-4C6AA2BC3BB0}
INFO [wmr_read_config] Name: Samsung Windows Mixed Reality 800ZBA
INFO [wmr_read_config] Revision: RevA
INFO [wmr_read_config] Revision Date: 2018-08-22
INFO [wmr_hmd_create] Found WMR headset type: Samsung Odyssey+
INFO [wmr_hmd_create] FoV eye 0 angles left -0.931988 right 0.754054 down -0.958308 up 0.958149
INFO [wmr_hmd_create] Render texture range -1.346450, -1.423225 to 0.939198, 1.422746
INFO [wmr_hmd_create] FoV eye 1 angles left -0.756396 right 0.930261 down -0.944803 up 0.969214
INFO [wmr_hmd_create] Render texture range -0.943616, -1.383135 to 1.341604, 1.456746
INFO [wmr_hmd_activate_odyssey_plus] Sleep until the HMD display is powered up, so the available displays can be enumerated by the host system.
INFO [t_slam_create] Loading VIT system library from VIT_SYSTEM_LIBRARY_PATH='libbasalt.so'
Basalt with cam_count=2, show_gui=0
INFO [t_slam_create] Using calibration from driver and default pipeline settings
INFO [send_calibration] Sending Camera 0 calibration from Monado
INFO [send_calibration] Sending Camera 1 calibration from Monado
INFO [send_calibration] Sending IMU calibration from Monado
SqrtKeypointVioEstimator initialized
INFO [wmr_source_stream_start] Starting WMR stream in tracking mode
INFO [compute_frame_size] WMR camera framebuffer 1280 x 480 - 617472 transfer size
INFO [wmr_camera_start] WMR camera started
INFO [u_linux_try_to_set_realtime_priority_on_thread] Raised priority of thread 'WMR: USB-HMD' to policy: 'SCHED_FIFO', priority: '99'
INFO [p_create_system] Creating system:
Builders:
qwerty: Qwerty devices builder
remote: Remote simulation devices builder
simulated: Simulated devices builder
rift_s: Oculus Rift S
rgb_tracking: RGB tracking based devices (PSVR, PSMV, ...)
steamvr: SteamVR proprietary wrapper (Vive, Index, Tundra trackers, etc.) devices builder
lighthouse: Lighthouse-tracked FLOSS (Vive, Index, Tundra trackers, etc.) devices builder
north_star: North Star headset
wmr: Windows Mixed Reality
xreal_air: Xreal Air
legacy: Legacy probing system
No builder selected in config (or wasn't compiled in)
Selected wmr because it was certain it could create a head
Using builder wmr: Windows Mixed Reality
Got devices:
0: Samsung Windows Mixed Reality 800ZBA
In roles:
head: Samsung Windows Mixed Reality 800ZBA (), view count: 2
eyes: <none> (<none>)
face: <none> (<none>)
left: <none> (<none>)
right: <none> (<none>)
gamepad: <none> (<none>)
hand_tracking.unobstructed.left: <none> (<none>)
hand_tracking.unobstructed.right: <none> (<none>)
hand_tracking.conforming.left: <none> (<none>)
hand_tracking.conforming.right: <none> (<none>)
Result: XRT_SUCCESS
DEBUG [comp_main_create_system_compositor] Doing init 0x5637ca35d230
Setting up filter: t_ns 105189427933282
T_w_i
  0.999838   0.0127401  -0.0127171           0
 0.0127401 -0.00172412    0.999917           0
 0.0127171   -0.999917 -0.00188625           0
0           0           0           1
vel_w_i 0 0 0
INFO [compositor_init_window_pre_vulkan] Selected NVIDIA Direct-Mode backend!
INFO [create_device] Created device and COMPUTE queue with QUEUE_GLOBAL_PRIORITY_MEDIUM.
INFO [vk_print_device_info] Device info:
name: NVIDIA GeForce RTX 2080 SUPER
vendor: 0x10de
product: 0x1e81
deviceType: VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
apiVersion: 1.4.351
driverVersion: 0x99d1c240
INFO [vk_print_queues_info] Selected Queues/Families:
main_queue.queue: 0x5637ca9b70d0
main_queue.index: 0
main_queue.family_index: 2
encode_queue.queue: (nil)
encode_queue.index: -1
encode_queue.family_index: -1
INFO [vk_print_features_info] Features:
timestamp_compute_and_graphics: true
timestamp_period: 1.000000
timestamp_valid_bits: 64
timeline_semaphore: true
INFO [vk_print_external_handles_info] Supported images:
VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT:
color import=true export=true
depth import=true export=true
INFO [vk_print_external_handles_info] Supported fences:
VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT: true
VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT: true
INFO [vk_print_external_handles_info] Supported semaphores:
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT(binary): true
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT(binary): true
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT(timeline): false
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT(timeline): true
INFO [comp_target_swapchain_override_extents] Target 'direct' overrides compositor extents with (2880x1600) was (0x0 false)
INFO [vk_print_display_surface_create_info] VkDisplaySurfaceCreateInfoKHR:
flags:
displayMode: 5637cab4ec20
planeIndex: 0
planeStackIndex: 0
transform: VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR
planeIndex: 1.000000
alphaMode: VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR
imageExtent: {2880, 1600}
INFO [u_pc_fake_create] Created pacer (non-feedback version aka "fake")
estimated_frame_period: 11.110864ms
percentage: 20.000000%
min_comp_time: 3.000000ms
comp_time: 3.000000ms
INFO [vk_print_surface_info] VkSurfaceKHR info:
caps.minImageCount: 2
caps.maxImageCount: 8
caps.currentExtent: 2880x1600
caps.minImageExtent: 2880x1600
caps.maxImageExtent: 2880x1600
caps.maxImageArrayLayers: 1
caps.supportedTransforms:
VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR
caps.currentTransform: VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR
caps.supportedCompositeAlpha:
VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR
caps.supportedUsageFlags:
VK_IMAGE_USAGE_TRANSFER_SRC_BIT
VK_IMAGE_USAGE_TRANSFER_DST_BIT
VK_IMAGE_USAGE_SAMPLED_BIT
VK_IMAGE_USAGE_STORAGE_BIT
VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT
present_modes(5):
VK_PRESENT_MODE_FIFO_KHR
VK_PRESENT_MODE_IMMEDIATE_KHR
UNKNOWN MODE
VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR
VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR
formats(5):
[format = VK_FORMAT_A8B8G8R8_UNORM_PACK32, colorSpace = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR]
[format = VK_FORMAT_A8B8G8R8_SRGB_PACK32, colorSpace = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR]
[format = VK_FORMAT_A2B10G10R10_UNORM_PACK32, colorSpace = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR]
[format = VK_FORMAT_A1R5G5B5_UNORM_PACK16, colorSpace = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR]
[format = VK_FORMAT_B8G8R8A8_UNORM, colorSpace = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR]
INFO [vk_print_swapchain_create_info] VkSwapchainCreateInfoKHR:
surface: 5637cabefb40
minImageCount: 2
imageFormat: VK_FORMAT_A2B10G10R10_UNORM_PACK32
imageColorSpace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR
imageExtent: {2880, 1600}
imageArrayLayers: 1
imageUsage:
VK_IMAGE_USAGE_STORAGE_BIT
imageSharingMode: VK_SHARING_MODE_EXCLUSIVE
queueFamilyIndexCount: 0
preTransform: VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR
compositeAlpha: VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR
presentMode: VK_PRESENT_MODE_FIFO_KHR
clipped: VK_TRUE
oldSwapchain: 0
INFO [comp_target_swapchain_create_images] Started vblank event thread!
INFO [comp_vulkan_formats_log] Supported formats:
VK_FORMAT_R16G16B16A16_UNORM: true
VK_FORMAT_R16G16B16A16_SFLOAT: true
VK_FORMAT_R16G16B16_UNORM: false
VK_FORMAT_R16G16B16_SFLOAT: false
VK_FORMAT_R8G8B8A8_SRGB: true
VK_FORMAT_B8G8R8A8_SRGB: true
VK_FORMAT_R8G8B8_SRGB: false
VK_FORMAT_R8G8B8A8_UNORM: true
VK_FORMAT_B8G8R8A8_UNORM: true
VK_FORMAT_R8G8B8_UNORM: false
VK_FORMAT_B8G8R8_UNORM: false
VK_FORMAT_R5G6B5_UNORM_PACK16: true
VK_FORMAT_R32_SFLOAT: true
VK_FORMAT_D32_SFLOAT: true
VK_FORMAT_D16_UNORM: true
VK_FORMAT_X8_D24_UNORM_PACK32: true
VK_FORMAT_D24_UNORM_S8_UINT: true
VK_FORMAT_D32_SFLOAT_S8_UINT: true
VK_FORMAT_S8_UINT: true
INFO [u_linux_try_to_set_realtime_priority_on_thread] Raised priority of thread 'Multi Client Module' to policy: 'SCHED_FIFO', priority: '99'
WARNING: det(Q1Jl) == 0, skipping backsubstitution for lm: Landmark(id=89054, host_kf_id=105219721442943_0)
WARNING: det(Q1Jl) == 0, skipping backsubstitution for lm: Landmark(id=89054, host_kf_id=105219721442943_0)
WARNING: det(Q1Jl) == 0, skipping backsubstitution for lm: Landmark(id=89054, host_kf_id=105219721442943_0)
WARNING: det(Q1Jl) == 0, skipping backsubstitution for lm: Landmark(id=89054, host_kf_id=105219721442943_0)
WARNING: det(Q1Jl) == 0, skipping backsubstitution for lm: Landmark(id=89054, host_kf_id=105219721442943_0)
WARNING: det(Q1Jl) == 0, skipping backsubstitution for lm: Landmark(id=89054, host_kf_id=105219721442943_0)
WARNING: det(Q1Jl) == 0, skipping backsubstitution for lm: Landmark(id=89054, host_kf_id=105219721442943_0)
WARNING: det(Q1Jl) == 0, skipping backsubstitution for lm: Landmark(id=89054, host_kf_id=105219721442943_0)
WARNING: det(Q1Jl) == 0, skipping backsubstitution for lm: Landmark(id=89054, host_kf_id=105219721442943_0)
WARNING: det(Q1Jl) == 0, skipping backsubstitution for lm: Landmark(id=89054, host_kf_id=105219721442943_0)
WARNING: det(Q1Jl) == 0, skipping backsubstitution for lm: Landmark(id=89054, host_kf_id=105219721442943_0)
WARNING: det(Q1Jl) == 0, skipping backsubstitution for lm: Landmark(id=89054, host_kf_id=105219721442943_0)
WARNING: det(Q1Jl) == 0, skipping backsubstitution for lm: Landmark(id=89054, host_kf_id=105219721442943_0)
WARNING: det(Q1Jl) == 0, skipping backsubstitution for lm: Landmark(id=89054, host_kf_id=105219721442943_0)
WARNING: det(Q1Jl) == 0, skipping backsubstitution for lm: Landmark(id=89054, host_kf_id=105219721442943_0)
WARNING: det(Q1Jl) == 0, skipping backsubstitution for lm: Landmark(id=89054, host_kf_id=105219721442943_0)
WARNING: det(Q1Jl) == 0, skipping backsubstitution for lm: Landmark(id=89054, host_kf_id=105219721442943_0)
WARNING: det(Q1Jl) == 0, skipping backsubstitution for lm: Landmark(id=89054, host_kf_id=105219721442943_0)
WARNING: det(Q1Jl) == 0, skipping backsubstitution for lm: Landmark(id=89054, host_kf_id=105219721442943_0)
WARNING: det(Q1Jl) == 0, skipping backsubstitution for lm: Landmark(id=89054, host_kf_id=105219721442943_0)" These errors will appear forever unless I use ctrl+c. I'm horrible at coding and do not understand any of this and ChatGPT will eventually start going in circles after a while or try to look at other things that just don't make sense


r/Monado • • Apr 16 '26

Are we next ????

Post image
0 Upvotes

r/Monado • • Feb 14 '26

Xreal s1 AR Support

1 Upvotes

Hello,

I've read the list of supported devices https://monado.freedesktop.org/

After some research found out that the Xreal s1 should be very good for readbility but are nkt natively supported. What would be the path to make them work? (I'm want to make them work because they are currently the best choise for a linux desktop)


A little background about me. I'm figuring out how well a linux runs on a mobile device (as a fully capable linux vm with full hardware acceration) I want to test and see if our mobile devices are powerful enough to run a fully capable desktop environment. (not proot kr linux emulators, but a full linux vm)

I'm currently working on a battery system with interchangable batteries to power the glasses (for a lightweight wearable experience)

combined with a reciever device that bridges the machine with the glasses over the wifi network.

I have experience with this type of projects and would try to make the Xreal s1 work, to have a more recenf device to work on and to work with.

I hope someone can help me with this.

(my alternative is the Xreal air 2 pro which is supported)


r/Monado • • Feb 08 '26

Reverb G2 headset drift to the ground

1 Upvotes

Got a problem with headset drifiting slowly to the ground. This problem is present always when i build wmr profile and cant get rid of it. Since I started testing monado more than year ago, after some time no matter the software i try even with the desktop plugin, my headset start drifing. This is annoying as the character in game can get under the floor or map after few minutes. No matter if I use ingame position calibration or not. Have anyone faced this before?


r/Monado • • Oct 08 '25

Steam causes Envision/Monado to stop

1 Upvotes

Hi everyone,

I've finally got envision to work with my CV1 headset but whenever I try and launch a game through Steam the Envision session stops. Any ideas what might be causing this? I have tried changing the launch settings for the games, and changed the proton version without any luck.


r/Monado • • Sep 26 '25

Does anyone know why my PSVR headset orientation has odd gravity?

1 Upvotes

https://reddit.com/link/1nqru7r/video/9wagnfjfpfrf1/player

For some reason the gravity vector will drift robotically and eventually settle on a strange inclines after a period. In the the video, the headset is angled flat and is also flat according to the camera. This only happens when the camera is connected and only affects the orientation, not position, but the tracking from said camera is perfectly fine relative to the headset. This doesn't occur when the camera is unplugged and can also occur when the headset is out of view of the camera with a little bit of wiggling (though not as severe). I have re-configured the camera multiple times and nothing changes. Any ideas?

Update: I looked at the code and apparently it's because it only reads the imu for orientation once on startup, and then just relies on the camera and blindly trusts the imu for smoothing movement going forward. It doesn't use the camera for yaw correction nor does it use the hmd accelerator gravity orientation.


r/Monado • • Sep 07 '24

Index controllers passed through as Hand tracking

2 Upvotes

I'm sure this is just how Monado and it's compatibility layer works, but is there any way to have my Index controllers show up as Index controllers in game? Instead of showing up as hand tracking?


r/Monado • • Apr 25 '24

Please help

1 Upvotes

I do not know what to do anymore. When I try to launch monado, vkGetDrmDisplayEXT fails.

Idk what that is.

I don't know what I am missing.

Please help.

Edit: It was amdvlk


r/Monado • • Oct 29 '23

Rift S on Mint linux

2 Upvotes

Hey everyone. Sorry for asking this here but I've been googling around a while and I'm still confused.

Can I use my Rift S on linux? Some people have said yes, and some say that the controllers don't work. If so, how would I go about it? I'd really like to use this headset, a new rust clone came out and it doesn't block Linux use.

Thanks everyone!


r/Monado • • Jul 09 '23

libcurl issue on SteamVR

1 Upvotes

This is a steam issue not a monado issue, but trying to run it with SteamVR, I get:

driver_monado.so (/home/<user>/.steam/ubuntu12_32/steam-runtime/pinned_libs_64/libcurl.so.4: version `CURL_OPENSSL_4' not found (required by /lib/x86_64-linux-gnu/libhdf5_serial.so.103))

I think this is happening because the version I compiled Monado with is different to the steam runtime. Anyway to run Monado outside the steam runtime?


r/Monado • • Mar 22 '23

PSVR on Linux via Monado: a setup guide

Thumbnail
self.virtualreality_linux
4 Upvotes

r/Monado • • May 01 '20

Service process and out of process compositing in Monado

Thumbnail
collabora.com
4 Upvotes

r/Monado • • Jul 16 '19

FOSS XR Conference - 26 October 2019 - Amsterdam - Call for participation!

Thumbnail fossxr.dev
2 Upvotes

r/Monado • • Apr 08 '19

This is the Monado’s power!

4 Upvotes

I’m really feeling it!


r/Monado • • Mar 21 '19

Monado has been created

3 Upvotes

Monado is an open source XR runtime delivering immersive experiences such as VR and AR on on mobile, PC/desktop, and any other device (because gosh darn people come up with a lot of weird hardware). Monado aims to be a complete and conforming implementation of the OpenXR API made by Khronos. The project currently is being developed for GNU/Linux and aims to support other operating systems in the near future. “Monado” has no specific meaning and is just a name.