I am attempting to update my VR project from Godot 4.2.2 to 4.3, but Godot is consistently failing to connect with SteamVR in this version. I followed this guide from the docs and am encountering the same problem. Every time I run the scene, there’s a pop-up window which says:
ALERT!
OpenXR was requested but failed to start.
Please check if your HMD is connected.
Godot will start in normal mode.
My headset is definitely connected, and I can run games and previous Godot versions on it. I’m hoping that the issue is something I’m doing wrong and not an engine problem.
I’m using an Index headset on Linux, if that helps.
Thanks for the quick response. I tried running the test project again after opening the editor through bash with the --verbose flag. This seems to be the relevant part of the output when I tried to run the scene:
OpenXR: Found OpenXR layer XR_APILAYER_LUNARG_core_validation
OpenXR: Found OpenXR layer XR_APILAYER_LUNARG_api_dump
Error [GENERAL | xrEnumerateInstanceExtensionProperties | OpenXR-Loader] : RuntimeInterface::LoadRuntime skipping manifest file /home/real_user/.config/openxr/1/active_runtime.json, failed to load with message "/home/real_user/.local/share/Steam/steamapps/common/SteamVR/bin/linux64/vrclient.so: wrong ELF class: ELFCLASS64"
Error [GENERAL | xrEnumerateInstanceExtensionProperties | OpenXR-Loader] : RuntimeInterface::LoadRuntimes - failed to load a runtime
Error [GENERAL | xrEnumerateInstanceExtensionProperties | OpenXR-Loader] : Failed to find default runtime with RuntimeInterface::LoadRuntime()
Error [GENERAL | xrEnumerateInstanceExtensionProperties | OpenXR-Loader] : Failed querying extension properties
ERROR: OpenXR: Failed to enumerate number of extension properties
at: load_supported_extensions (modules/openxr/openxr_api.cpp:357)
WARNING: OpenXR was requested but failed to start.
Please check if your HMD is connected.
Godot will start in normal mode.
at: initialize_openxr_module (modules/openxr/register_types.cpp:151)
This: RuntimeInterface::LoadRuntime skipping manifest file /home/real_user/.config/openxr/1/active_runtime.json, failed to load with message "/home/real_user/.local/share/Steam/steamapps/common/SteamVR/bin/linux64/vrclient.so: wrong ELF class: ELFCLASS64" is the source of the issue. It’s failing to load Valves OpenXR runtime. I wonder whats causing that.
I got the situation fixed. From the bit of research I did, the wrong ELF class: ELFCLASS64probably means that Godot was expecting the SteamVR client binary to be 32-bit, for some reason. I ended up building the 4.3-stable branch myself to inherit whatever system properties I have and now I have a 4.3 build that runs VR. Thank you Godot devs for making your source code incredibly easy to build.