OpenXR Bug with HP Reverb G2 WMR controllers and Unity Input System

,

In order to read the joystick values on the XR controllers I’m using InputAction.started, InputAction.performed, and InputAction.canceled to detect when the stick position is changed. This is working on every device that I’ve tested (Oculus Quest, Vive Wands, Valve Index, etc.) except one configuration.

If you are using the SteamVR as your OpenXR runtime and you’re using an HP Reverb G2 headset, the joystick values don’t update correctly through these events.

If you poll the InputAction in the Update method the values are correct, but the event-based values are not. The event-based values “stall” if you move the joystick in a circle.

The broken chain:
HP Reverb G2->Mixed Reality Portal->SteamVR->OpenXR->Unity Application

Working chains:
HP Reverb G2->Mixed Reality Portal->OpenXR->Unity Application
Oculus QuestLink->Oculus App->OpenXR->Unity Application
Vive Headset->SteamVR->OpenXR->Unity Application

I’m using the same pattern (started, performed, canceled) to read values from the index trigger and grip trigger, and those are working correctly on all platforms, it’s only the joystick that stalls.

The SteamVR plugin is developed and maintained by Valve. Please post your issues on their Github so their team can address.:slight_smile:

This is a unique and rare interaction between the Unity Input System, OpenXR and SteamVR. I don’t have the energy or clout to convince Valve that this is their bug to investigate (I spent an entire day convincing them about an issue that was clearly theirs a few weeks ago). I’ll leave this for someone else to resolve.

I would just gather all these VR SDK independent developers in one room in remote plase, then I would lock the doors and windows, I would set a clock for 7 days, and i would show them 30 tons Of TNT, stored in a room below them, That could slap some sense into them