From c82b0f0d09571919e25fbf9e28c4facd6ea7c1d5 Mon Sep 17 00:00:00 2001 From: Snemby Date: Mon, 11 May 2026 16:45:14 +0200 Subject: [PATCH] test playspace offset availability --- wayvr/src/backend/openxr/mod.rs | 5 +++++ wayvr/src/backend/openxr/playspace.rs | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/wayvr/src/backend/openxr/mod.rs b/wayvr/src/backend/openxr/mod.rs index 3b686d3c..06ca9747 100644 --- a/wayvr/src/backend/openxr/mod.rs +++ b/wayvr/src/backend/openxr/mod.rs @@ -95,6 +95,11 @@ pub fn openxr_run( app.monado_state_init(); let mut space_mover = playspace::PlayspaceMover::new(); + if let Some(m) = app.monado_state.as_mut() { + // Test whether current playspace offset can be queried and log an error if it fails. + // `space_mover` can be used regardless and will start working if the playspace offset becomes available later. + space_mover.test_availability(&mut m.ipc); + }; let mut blocker = app .monado_state diff --git a/wayvr/src/backend/openxr/playspace.rs b/wayvr/src/backend/openxr/playspace.rs index 0be7b76e..3d9e3119 100644 --- a/wayvr/src/backend/openxr/playspace.rs +++ b/wayvr/src/backend/openxr/playspace.rs @@ -244,6 +244,12 @@ impl PlayspaceMover { .set_reference_space_offset(ReferenceSpaceType::Stage, pose) .inspect_err(|e| log::warn!("Could not fix floor due to libmonado error: {e:?}")); } + + pub fn test_availability(&mut self, monado: &mut Monado) { + let _ = monado + .get_reference_space_offset(ReferenceSpaceType::Stage) + .log_err("Space drag may not be available"); + } } fn get_offset(monado: &mut Monado) -> Result {