XR_EXT_user_presence broken on HTC?

Hi all

So SteamVR added the XR_EXT_user_presence extension in version 2.9, which is great. Reliably detecting if a user is wearing the headset is really important for our industry (industrial / academic research and analytics). So I went ahead and implemented support for this extension to our engine, and… It doesn’t work.

Headsets : Focus 3 and Focus Vision. Both on latest FW. SteamVR on latest 2.12 release.

The extension is advertised. I enable it and query for actual user presence support using XrSystemUserPresencePropertiesEXT with xrGetSystemProperties to get the supportsUserPresence flag, and it’s set to true.

The docs say the following:

If the system does not support user presence sensing, the runtime must return XR_FALSE for supportsUserPresence and must not queue the XrEventDataUserPresenceChangedEXT event for any session on this system.

So if this flag is true, we can assume that the system does in fact support user presence sensing, right ?

So, when I start this up, I do get an initial XR_TYPE_EVENT_DATA_USER_PRESENCE_CHANGED_EXT event after the session is up (which is expected according to the docs), but the isUserPresent flag in the event is always set to true, regardless of whether the headset is worn or not. After that initial event, I never get this event again, even when putting up and down the headset multiple times or passing my finger in front of the proximity sensor.

Is this expected behavior ? Why is the user presence sensing capability advertised as available, but no actual user presence data is sent ? Is there some setting somewhere on the headset / driver I missed to make this feature work ?

Thanks

This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.