Skip to main content
Participant
July 11, 2023

Enabling Meta XR Feature Group in OpenXR breaks controller tracking

Using Unity 2022.3.4f1 LTS with the updated packages for OpenXR (1.8.1) and Oculus XR Plugin (4.0.0) and v54.1 of the Oculus Integration SDK, enabling the `Meta XR feature group` under XR Plug-in Management/OpenXR completely stops the controllers from tracking. 

The controllers are not visible in the Analysis/XR Interaction Debugger/Input Devices and no device connection events are raised from InputDevices. Disabling the Meta XR feature group fixes the behaviour. 

I have tried earlier versions of the integration SDK but anything < v53 yields a compile error with the new OpenXR and Oculus plugins. Is this a known issue? 

This topic has been closed for replies.

21 replies

Inspiring
July 12, 2023
guilmer83Author
Participant
July 12, 2023

While on the topic. Is there a way to disable the incredibly annoying prompt to turn the meta features back on, that appears every time I hit play? Other than deleting the MetaXRFeatureEnabler.cs file?

New Participant
July 13, 2023

Not too sure if it's the same problem but I am using OpenXR 1.7.0, NO Oculus XR Plugin added in my Unity project and NO Oculus Integration.  If I run my project with Meta XR, my controllers are not detected either in the XR Interaction Debugger.  If I run without Meta XR, it is fine and I get the annoying popup you are talking about.

I am using an Oculus Rift CV1.

demonixis
Up and Coming
August 30, 2023

Any update on this? I've the same issue with v56 and Unity 2023.1

guilmer83Author
Participant
September 13, 2023

For anyone interested, I've found this online https://forum.unity.com/threads/bug-need-help-quest-2-controllers-not-working-with-interaction-toolkit.1459705/ that point to Unity's XR interaction toolkit version 2.4.0 having a bug with multiple controller interaction profiles. 

So using OpenXR on an Android build with Meta Quest support enabled running on XR Interaction Toolkit 2.4.0 I was able to replicate the bug: having a single Oculus Touch Controller Profile has the controllers working, but adding a second profile for Quest Pro breaks it. It's not a fix but it's a start. 

New Participant
October 28, 2023

That did it! Thanks.

New Participant
December 24, 2023

ive grown wiser since this post... now what i feel i would love to see if i can do is do OpenXR but use Oculus integration just the higher level constructs for interactivity.    i have no idea how to do that 

semateos
New Participant
September 16, 2023

Having the same issue with Unity 2022.3.8f1, Oculus Integration 56, Open XR 1.8.2, Oculus XR Plugin 4.0.0 - controllers don't track unless I disable the Meta Features Group in Open XR settings. Which seems less than ideal.

New Participant
October 22, 2023

You have to ask yourself what are you really trying to accomplish.  The occulus XR pluging is not OpenXR and OpenXR is OpenXR.    If you want to do OpenXR then you choose OpenXR and add meta quest support.   If you want to go direct Occulus XR thats implicit..  meta quest support is redundant at that point.  Take a look at the OpenXR architecture diagram.. youll see what i mean

your either making an application thats just intended to run on occulus headsets
or your making an application thats intended to run on multiple headsets.

if you you sure about what you are doing and you intend for this program to run on occulus and other headsets well then pick openxr and add meta quest support.  if not then not.

Participant
October 5, 2023

I have checked as well that adding the Oculus Integration plugin v56, everything was working fine without it, added this plugin for passthrough support and now, when meta feature group is active, controllers are not tracked.

Easy to reproduce, create a unity 3d URP project, activate openXR, download XR interaction toolkit, download XR hands, download XR Interaction toolkit hand sample and run this sample demo scene (eventually migrate materials for urp). Everything is working, then add Oculus Integration plugin, it will activate Meta features by default, run the same sample, controllers are not working anymore. Uncheck meta feature, then controllers are tracked.

 

 

guilmer83Author
Participant
October 6, 2023

You don't need the meta feature group to enable passthrough: https://blog.unity.com/engine-platform/get-started-developing-for-quest-3-with-unity Unity made an AR foundation package for Meta headsets that works without using the Meta feature group. 

Participant
October 6, 2023

Wow excellent! you made my day!

guilmer83Author
Participant
February 5, 2024

Just keeping this thread alive as this is still an issue. 

More details now: 

Making a Unity OpenXR PCVR App that is compatible with both SteamVR and Oculus runtime environments. The app has both a VR and desktop display. When using any Quest headset with Quest Link/Oculus Runtime and Open XR in Unity, if I take the headset off for a few seconds, the console/logs are spammed by "XRStats::SetStatFloat failed. Stats queue full! Stats for this frame will be lost."

No idea where it's from, Valve Index/SteamVR doesn't do this, no more information in the Logs/stacks. Just ~10 of these warnings per frame. Tried disabling the XRDisplay and XRInput subsystems, deleted literally everything in my scene,... warnings still occur if the display goes idle. 

The only way I figured I can get rid of them is by enabling the Meta Feature Group. Which STILL breaks controller tracking. Anyone has had any success with this? 

RaptorMatt
Inspiring
February 26, 2024

I am having the same issue with the Meta SDK v62. If I am using OpenXR and enable the "Meta XR feature group", then this breaks input for the touch controllers. If I disable the "Meta XR feature group" then 2 annoying dialog boxes show up telling me to enable the feature group each time the editor is opened and each time you enter playmode. Is there any way to suppress the warning? The Meta SDK is in the packages folder so I don't believe I can modify it without those changes getting wiped out of the package cache refreshes itself.

New Participant
March 24, 2024

Search "MetaXRFeatureEnabler.cs" file, 

        private static void EnableMetaXRFeature()
        {
            return; //Add this line
            EditorApplication.update -= EnableMetaXRFeature;
            bool unityRunningInBatchmode = false;