HorizonOS v81 update broke Passthrough in startup Splash Screens
Hi folks, This is for a project in a C++ UE 5.5.3-0+oculus-5.5.3-release-1.109.0-v77.0 engine from official Oculus Branch. A recent update to Horizon OS, likely v81, seems to have changed the way Splash screens are handled to now send the user to a black void with particles and wisps flying by. This has created a big problem for our MR application in that now NO Passthrough is visible during splash, which is causing us to fail VRC (Functional.14). This was not an issue before this OS update. These are the settings and image (PNG with transparency) we are using: Even forcing bAutoEnabled to True in DefaultEngine.ini does not help: Setting to Black also gives the same result, which is the black void with a very low resolution proxy of the PNG we have: For reference, this was the behavior before the v81 update: We also scouted other MR apps and it seems they face similar situations (?) Any help is appreciated as we'd rather not request any waivers during our QA process. Thank you! -Sebastian11Views0likes0Commentsunreal 5.6.1 + metaXR (oculusXR) plugin compilation errors
UATHelper: Packaging (Android (ASTC)): ld.lld: error: undefined symbol: LowLevelTasks::FTask::ActiveTask UATHelper: Packaging (Android (ASTC)): >>> referenced by Task.h:371 (Runtime/Core/Public/Async/Fundamental/Task.h:371) UATHelper: Packaging (Android (ASTC)): >>> C:/Users/User/Desktop/UnrealGameProject/Plugins/MetaXR/Intermediate/Build/Android/a/UnrealGame/Shipping/MRUtilityKit/MRUtilityKitDestructibleMesh.cpp.o:(UMRUKDestructibleMeshComponent::SegmentMesh(TArray<UE::Math::TVector<double>, TSizedDefaultAllocator<32>> const&, TArray<unsigned int, TSizedDefaultAllocator<32>> const&, float, float, float)) UATHelper: Packaging (Android (ASTC)): >>> referenced by Task.h:371 (Runtime/Core/Public/Async/Fundamental/Task.h:371) UATHelper: Packaging (Android (ASTC)): >>> C:/Users/User/Desktop/UnrealGameProject/Plugins/MetaXR/Intermediate/Build/Android/a/UnrealGame/Shipping/MRUtilityKit/MRUtilityKitDestructibleMesh.cpp.o:(UMRUKDestructibleMeshComponent::SegmentMesh(TArray<UE::Math::TVector<double>, TSizedDefaultAllocator<32>> const&, TArray<unsigned int, TSizedDefaultAllocator<32>> const&, float, float, float)) UATHelper: Packaging (Android (ASTC)): >>> referenced by Task.h:371 (Runtime/Core/Public/Async/Fundamental/Task.h:371) UATHelper: Packaging (Android (ASTC)): >>> C:/Users/User/Desktop/UnrealGameProject/Plugins/MetaXR/Intermediate/Build/Android/a/UnrealGame/Shipping/MRUtilityKit/MRUtilityKitDestructibleMesh.cpp.o:(UMRUKDestructibleMeshComponent::SegmentMesh(TArray<UE::Math::TVector<double>, TSizedDefaultAllocator<32>> const&, TArray<unsigned int, TSizedDefaultAllocator<32>> const&, float, float, float)) UATHelper: Packaging (Android (ASTC)): >>> referenced 25 more times UATHelper: Packaging (Android (ASTC)): clang++: error: linker command failed with exit code 1 (use -v to see invocation) I'm trying to update a project from 5.4 to 5.6 and getting this error with the v81 sdk https://developers.meta.com/horizon/downloads/package/unreal-engine-5-integration I'm able to compile in VS but not in the engine.54Views0likes2CommentsQuest System Keyboard Input Box is gone on the new GameActivity entry point Unity 6
Hello, We are encountering a significant issue with system keyboard on Meta Quest builds using Unity 6. The Problem Forced Entry Point: Unity 6 now defaults to the GameActivity application entry point. When we attempt to use the older Activity entry point (required for the previous keyboard system), the application crashes on startup, forcing us to use GameActivity. Missing Input Box: The GameActivity entry point uses the GameActivity Jetpack library, which has removed the on-screen input box that traditionally appears above the system keyboard. For mobile apps, this is a clean design, but in Meta Quest VR, this causes a major UX problem. The UX Issue on Meta Quest Since the Quest system keyboard is visually separate and detached from the in-game UI, users lose all visual confirmation of what they are typing. The visible input box on the system keyboard is necessary in VR to show the user the text they are actively entering. The Constraint Migrating our entire project to a custom virtual keyboard is not feasible due to the complexity of supporting multiple languages and character sets. Our Question Is there an official or known way to restore the input box feature on the system keyboard, as it existed with the old "Activity" entry point, while still using the required GameActivity in Unity 6? Any guidance on modifying the GameActivity bridge or another low-level fix would be greatly appreciated. Thank you!97Views0likes2CommentsMy project runs on Quest 2 at 18 FPS (GPU-bound), no matter the scene or XR Rig
Our game's Quest performance has always hovered around 36 fps while in development, which I've come to find out was due to high batch counts and complex lit material shaders on every object. But now that I'm back to testing optimization on Android, I've noticed terrible frame rates (10-18) no matter what I disable in the scene. I've even opened up the DemoScene from XR Interaction Toolkit, and it experiences the same unknown GPU-bound issue. Context about my project: Unity 6.0.59f2 running on a Windows 11 PC. Open XR project targeting a Quest 2 and SteamVR release. I have a ton of packages from the Unity Asset Store that I'm using to build the rig, environment, or mini games. I've kept them up to date, checked that they were Unity 6 compatible, and removed any unused packages. Things I've checked: I've used the What If analysis from the Quest Runtime Optimizer tool to find out that the one blank scene I was testing in had a total GPU Frame Time of 0.342 ms. Maybe you can help identify anything in the Renderdoc. Every little setting in Project Settings to be set up the recommended way. The only warnings left in my Meta Project Validation are about depth and opaque textures being on, which are required for Stylized Water 3 (an asset that supports Quest) to run. Also, one more warning about Screen Space Ambient Occlusion but from checking everywhere, that feature is off or deleted. Memory Profiling. RAM usage in these empty test scenes is at 1.54 GB and I've sat in the scene for 20 minutes before without it crashing or getting slower like a RAM overflow would do. There is no spamming of logs, warnings, or errors during runtime on the quest. I checked by turning on Script Debugging and connecting the editor's console to the headset's output. All I found were some regular logs on startup. Suspicious things I've noticed that only happen in my Quest builds (testing in-editor lacks these issues and runs above 50 fps): Dynamic Resolution falls to 0 for my game. But I'm curious if this is the reason for making foveated rendering glitch out so much so that the screen becomes super pixelated in vertical strips across the screen. Only when building will I be notified of shader errors from packages we've been setting up like GPU Instancer pro, Microsplat, and InfiniCloud. I mostly stop the errors by deleting sample packages that we didn't need or in one case commenting out a line of code with an error about fog in the universal render pipeline asset or something. Please help, I've worked on this for four days, and I'm at the end of what I know to try.Solved42Views0likes4CommentsXR Headtracking breaks in build on Meta Quest 3 after headset goes to sleep
1. What happened Recently, we have begun encoutnering an error with our builds of a VR App for the Meta Quest 3 headset. Every now and then, after having our App open on the headset and setting it aside, where it then goes into sleep mode, an unexpected effect will be permenantly applied to the session. When you press the Meta home button on the right controller to bring up the overlay menu, the camera in Unity loses tracking of the headset. The camera gets put into the floor of the scene and the picture does not move along as you move your head around in VR. When you unpause again tracking is regained, but from then on, pausing causes this graphical error consistently. We are uncertain when it began but it is likely related one or both of these changes our project recently went through: - Updating our Unity with the new security patch (We went from Unity 6000.0.51f1 to Unity 6000.0.58f2) - Recent updates to the Meta Quest 3 headset The most likely suspect is the Meta Quest 3 update, as the error is reproducible on older builds made before the security patch. It is additionally not possible on Meta Quest 2 headsets, which supports this idea. We will also be reporting this issue to Meta, as it is unclear if this is an issue that should be solved in Unity's XR systems or in Meta's software. 2. How can we reproduce it using the example you attached I have attached a project built clean from scratch, following Meta's guide found here: https://developers.meta.com/horizon/documentation/unity/unity-project-setup/ Using the attached project, here's a step by step guide how to reach this bug: 1. Make a build for Android with the attached project 2. Load the APK onto a Meta Quest 3 headset 3. Open the app and verify head and hand tracking are working in the scene 4. Set aside the headset for around 30 seconds (this has been the most consistent timing for us to reproduce this bug) 5. Put the headset back on and verify that everything is still working as expected (move your head and hands, pause using the Meta Home Button, etc.) 6. Set aside the headset again for another 30 seconds 7. Put it one once again 8. You should now see that, when you bring up the Meta overlay menu with the Meta Home Button, the camera in Unity gets stuck in the floor and loses tracking. When you unpause, tracking is regained. But from then on, tracking is lost every time you bring up the Meta overlay menu. Additional info: - The bug goes away again if you do another round of setting the headset aside for 30 seconds. Doing so will give you a none buggy session again. Presumably more 30 second cycles will continue to switch between having the error and not having it Link to repo with the test project: https://github.com/PeterrificHC/XRSleepPauseError51Views1like2CommentsStarting web cast from code
Hi, Is it possible to start casting to horizon.meta.com/casting from code ? Or are we required to implement the MediaProjection API on Meta Quest | Meta Horizon OS Developers when we want to integrate casting from the Quest device to a companion app ? In which case, does the user need to confirm the cast for every session ? Cheers22Views0likes1CommentIs there a similar feature to Android Device Owner ?
Hi, We are investigating a use case where we would need to manage Quest devices. Specifically clear an external app User Data. On android this is possible through Android Device Owner apps. If we get it correctly, this is not supported on Horizon OS. There is the Meta mixed reality business subscription service | Meta for Work, however it is unclear for us if we would be able to manage external app User Data from it. And if our app would have some privilege on the device, to help the user by steering the experience. Thanks Cheers26Views0likes0CommentsAccessing system-wide performance metrics (like com.oculus.ovrmonitormetricsservice)
I’m developing an internal Kotlin app for Meta Quest that reports headset performance data to our servers. When running as a regular app, I can’t access the same system-wide metrics that com.oculus.ovrmonitormetricsservice logs every second. From adb shell logcat I can see the data, but from inside the app I get nothing — logcat access and /proc reads are restricted. I’ve also tried reading from Linux system files and running shell commands, but due to Android sandboxing I only get metrics for my own app process. Is there any supported way (API, permission, intent, or service binding) to access those metrics from a normal app, or is it limited to system-signed packages?28Views0likes1Comment