OpenXR Development
Recently active
Hi,I'm using XR_KHR_composition_layer_depth and running into some issues with the PCVR OpenXR runtme:xrEnumerateSwapchainFormats returns a number of depth formats.None of these depth formats support VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT.According to the validation layer, xrCreateSwapchain sets the STORAGE_IMAGE bit when creating its internal images.Swap chain creation for my depth swap chain still (somehow) "succeeds".But then rendering breaks with a DEVICE_LOST error.If I turn off XR_KHR_composition_layer_depth (or otherwise disable creating a depth swap chain and just create my own depth buffer) then the color chains work fine.My expectation would be that if my device doesn't support everything that the OpenXR runtime needs for a depth swap chain that xrEnumerateSwapchainFormats would tell me that by simply not enumerating any depth formats (or maybe just not advertising XR_KHR_composition_layer_depth), no? Or is there some other API that tells me that? (Hoping there's something other
So, after I have HAD to update my Quest 3, yesterday, iRacing Time Attack loading…lags out with the 26 second inactivity.Running Open VR works.So after 5 hours of uninstalling and reinstalling everything (game, drivers and apps)….I figured that Open XR was causing the problem.When loading, it hangs on Installing Renderer…..then the 26 second fault…..I am able to load and run the game with Open XR disabled or uninstalled……What gives?I am still trying to figure out why the conflict and a way around it.Any Help?
I'm developing a native C++ OpenXR app for the Meta Quest 3 but I can't seem to properly set the api version to anything other than XR_MAKE_VERSION(1, 0, 0)Ideally this should work assuming I'm using a supported OpenXR version:XrApplicationInfo applicationInfo; applicationInfo.apiVersion = XR_CURRENT_API_VERSION;However this results in a:xrCreateInstance: API Version [281479271677988] not within supported range [281474976710656,281474976710656] If you do the math 281479271677988 is 1.1.36 and 281474976710656 is 1.0.0If I use XR_API_VERSION_1_0 as shown in the example here: https://developer.oculus.com/documentation/native/android/mobile-openxr-instance-session/It works without any issues. But I can't seem to set it to the correct version. At the time of writing this Meta OpenXR SDK 67.0 is based on OpenXR 1.1.36 https://developer.oculus.com/downloads/package/oculus-openxr-mobile-sdk/ I'm guessing the discrepancy between what version of
Hi,I am developing an OpenXR PC VR app through oculus link and I am trying to get the global mesh using my Oculus Quest 3 headset.I am following the code of XrSceneModel sample and I am able to get the global mesh.I call xrGetSpaceTriangleMeshMETA and I obtain indices and vertices of the global mesh.The problem is when I try to obtain the pose of the global mesh referred the xr local space of my app.The function xrLocateSpace returns invalid handle.I am sure that the handle of my local space is valid so I think that the handle of the global mesh is not valid.In fact if I try to call xrLocateSpace for the global mesh referred to the XrSpace of the mesh itself I get invalid handle.Is it a bug or something not supported?Thank you
Hi, I bought the Quest Pro and love it, and develop for both PC VR and Android.I would like to know if Local Dimming will ever work on PC through OpenXR via Link or AirLink, or if it will be possible to enable it in the runtime somehow, like Link Sharpening is.I paid good money for this headset and I expect all its features to work on PC. I'm a pro developer and need PC vs Android builds to have visual quality parity and local dimming missing on PC is a glaring oversight, in my opinion. It's simply unacceptable to spend 2000$ and not be able to use local dimming for PC VR games and apps.If we can't enable it at a platform level on the headset itself, then if could at least consider a way to add it to Link / AirLink options in a similar way that LinkSharpening was, that would be great. If not, allowing us to enable it through OpenXR as it is on Android, would be fine as well.If this isn't done by my Amazon return window of Jan 31st, 2023, I will be returning the Quest Pro for a full ref
I'm testing a game using the default browser with my Meta Quest 3. I want use https://developer.mozilla.org/en-US/docs/Web/API/XRBoundedReferenceSpace/boundsGeometry to determine the size and shape of the user's play area so I can adjust the game to fit that space. However, if I trysession .requestReferenceSpace('bounded-floor') .then((refSpace) => { console.log(refSpace.boundsGeometry); });then it prints an empty array to the console (viewed remotely with Chrome devtools). If I call console.log(refSpace.boundsGeometry) a second time after session.requestAnimationFrame has been called a few times then an array with 4 points is printed to the console. These 4 points form a square that is much smaller than my place space and are partially outside of the play space too.I tested out this example https://ivnnv.github.io/webxr-samples/room-scale.html and it seems to have the same issue.Does anyone know what I might be doing wrong? Or is this an issue with the Meta Quest 3 browser?
Yesterday, I still could work and test with my connected quest via link cable inside of Unreal 5.1.1, but today, the headset is no longer usable. I am side-linked, and all from a Windows point of view is ok ... but it's unreal how often I restart it .. it doesn't allow me to test and view in VR any longer. What yesterday worked well? I hope someone will react it is quite important that i go on with my tests .. greetings Martn
Hi,I am trying to build a cross platform project for both Meta Quest and MagicLeap. Thing is, my app works perfectly on Meta Quest 3 before trying to add magicleap package. But as soon as I add the com.magicleap.unitysdk package, without changing anything to the scene, player settings, or manifest, the app crashes on startup (right after passthrough loads up) with the following logs : Spoiler (Highlight to read)0001/01/01 00:00:00.000 -1 -1 Info --------- beginning of crash2024/07/05 11:03:02.313 20896 20948 Fatal libc Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x1 in tid 20948 (Thread-2), pid 20896 (////////)2024/07/05 11:03:02.619 20896 20948 Error CRASH *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***2024/07/05 11:03:02.619 20896 20948 Error CRASH Version '2022.3.12f1 (4fe6e059c7ef)', Build type 'Release', Scripting Backend 'il2cpp', CPU 'arm64-v8a'2024/07/05 11:03:02.619 20896 20948 Error CRASH Build fingerprint: 'oculus/eureka/eureka:12/SQ
Thank you for taking the time to read my question.I am currently developing content using hand tracking with OpenXR, but suddenly, hand tracking has stopped working. When checking the Input Debugger, it used to show “XRHandDevice” for hand values when hand tracking was functional. However, it now shows “OculusTouch” as seen in the attached image. Even when creating a new project, it does not display “XRHandDevice,” and hand tracking is not available.If anyone has encountered this issue or knows a solution, I would greatly appreciate your help.Thank you in advance!Feel free to adjust it if needed! If you have any other questions or need further assistance, just let me know.
Using Meta Quest 3 with Pro controllers that XrSpatialAnchor example won't start for some reason.All I get is a black screen with the three loading dots.Oculus OpenXR Mobile SDK 66.0.Logs are showing: Failed to find required extension XR_META_spatial_entity_discoveryOk I think I just need to upgrade the headset to v66.
Using XrSceneModel from the OpenXr Samples, I can see it loads only one room when I have several rooms scanned.xrQuerySpacesFB triggers XR_TYPE_EVENT_DATA_SPACE_QUERY_RESULTS_AVAILABLE_FB and XR_TYPE_EVENT_DATA_SPACE_SET_STATUS_COMPLETE_FB correctly but only returns one room. I can force the query again but it only returns the same room. And if I force the query again with excludeFilter set with the uuid of the first room, nothing is returned aferwards.OpenXR Mobile SDK v66 still uses OpenXR version 1.0.34, and it says in the download page that in the upcoming versions (>= 1.0.38, but it doesn't work if I try to get this or newer versions) xrQuerySpacesFB will be able to receive multiple rooms. However I don't understand why if I force the query two times, with the second one with an uuid exclude filter, I can't retrieve two stored rooms.
Hello,I was wondering if anyone knows internal or external Meta discussion regarding a OpenXR runtime for Linux? Alongside support for the Meta Quest Link / Oculus PC application. This would be super useful for those of us developing on Linux experiences and products that use Link/Air Link like approaches. Granted you can argue Linux is a niche case, and sure, it likely is for XR right now. But with the terrible changes Microsoft is making to Windows 11 (AI Spyware) among it just been a terrible OS (in my opinion) more and more people want to jump ship. And with Linux (and MacOS) getting more support for gaming it would be nice to have Meta put some resources into building a runtime that can run natively on Linux (and possibly MacOS one day). Now I know about Collabora's 'Monado' project, however this is mainly aimed at Valve's HMD it seems and it does it's own implementation of certain extensions within the OpenXR Spec. However as Meta has a mix of merged and (To-be-merged)
Is it possible to use the vulkan validation layer on Quest 3?I've enabled the XR_EXT_DEBUG_UTILS_EXTENSION when creating the xr instance, and have created a debug callback using xrCreateDebugUtilsMessengerEXT. I tried doing the same thing in the vulkan instance: I add VK_EXT_DEBUG_UTILS_EXTENSION, but when I call vkGetInstanceProcAddr to get vkCreateDebugReportCallbackEXT I get null (so I'm assuming the xr version takes precedence and you don't use the vk extension). When I try to add VK_LAYER_KHRONOS_validation layer to the VkInstanceCreateInfo and call xrCreateVulkanInstanceKHR, it fails, returning XR_ERROR_VALIDATION_FAILURE.
Hi. I just updated my Meta Quest Link software and now when I run my stuff Open XR, can not find the paths to the right controller's A button??? Any help would be appreciated. Anyone else experiencing this? CheersSimon
I have an app that uses eye tracking via the oculus movement sdk and open XR for everything else. As of last week Wednesday the eye tracking was working properly in my scene. Today it does not. I'm prompted for permission to use it each time the app starts, but the eye tracking is not working. Has something shipped recently that broke my project? Thanks for any ideas.
Hi,I was wondering if using the passthrough OpenXR extension in OpenGL we can get the color and depth textures used to apply the compositing on the final render.Using FBO before sending the textures to the swapchain I suppose the data is known (obvisouly it must be) but maybe only on the Quest side and maybe not on the computer side (computers which processes the rendering). I need to have the color AND depth information to process a shader effect based on depth (depth of 3D objects and depth of each passthrough video pixel ). How could I acquire these textures (I did not see anything in the Khronos OpenXR extension documentation) ?I hope you can help me,Regards,Marc
In FOculusXRInput::GetControllerOrientationAndPosition there are two lines that check the 'validity' of a motion source ...bool bIsPositionValid = OVRP_SUCCESS(FOculusXRHMDModule::GetPluginWrapper().GetNodePositionValid(Node, &bResult)) && bResult;bool bIsOrientationValid = OVRP_SUCCESS(FOculusXRHMDModule::GetPluginWrapper().GetNodeOrientationValid(Node, &bResult)) && bResult;We are intermittently getting failures reported here, and I don't know why ... does anybody know what the GetNodePositionValid function actually checks? I can find no code or documentation for it ...
At some point will the hand tracking cursor pose be added to Oculus' OpenXR runtime? Microsoft use the XR_MSFT_hand_interaction extension to provide some extra interaction paths including:…/input/select/value…/input/squeeze/value…/input/aim/pose…/input/grip/poseI've re-implemented pinches in Unreal to handle the select value interaction path, but it would be great to be able to access the PointerPose value that hangs around in the ovrInputStateHand struct via an aim pose interaction path since it has such nice smoothing. I'm using the wrist bone right now to aim which is very shaky.
I can see that in Quest, interaction_profiles/microsoft/hand_interaction is supported, and this lets me detect the actions /input/squeeze/value and input/select/value.What I can't seem to do is detect when the hand is turned towards the user such that the "menu" button is visible.What is the "correct" way to detect this, so I can handle the menu button with OpenXR?
The specs clearly state that:If the returned isActive is true, the runtime must return all joint locations with bothXR_SPACE_LOCATION_POSITION_VALID_BIT and XR_SPACE_LOCATION_ORIENTATION_VALID_BIT set. Although, inthis case, some joint space locations may be untracked (i.e. XR_SPACE_LOCATION_POSITION_TRACKED_BIT orXR_SPACE_LOCATION_ORIENTATION_TRACKED_BIT is unset). However the OpenXR runtime in meta devices do always return isActive as true once hand tracking has been activated. This means that when a given hand is not tracked because is out of sight, the isActive field is true but the flags for all the joints are zero, meaning that the system is saying at the same time that the hands are tracked and not tracked.
Hi, we have developing the application with virtual keyboard for login purpose and using meta xr sdk,Current behavior we are facing: keyboard is enabled but its not interactable through controller ray.Meta XR Version - 65.0.0Unity Version - 6.0.0.0Virtual keyboard settings:1. Enabled the controller ray interaction in OvrVirtiualKeyboard script.2.Render model support - enabled in Ovr manager3.Virtual keyboard support - supported in Ovr manager.4.we are enabling the keyboard using showkeyboard() function.5. Also set the current text handler for active input field.6. we are using ray interactable for ui interactionPlease let us know for any settings we are missing for virtual keyboard with meta xr and also share example scene development with meta xr sdk.Thanks in advance.
Applying the interaction profile bindings for /interaction_profiles/facebook/touch_controller_pro has worked fine for my application up until now. Currently using 66.0.0.234.370 with the Meta Quest Pro over AirLink, I'm getting a XR_ERROR_PATH_UNSUPPORTED error when calling xrSuggestInteractionProfileBindings. Eliminating the following action paths prevents the error: /user/hand/left/input/palm_ext/pose /user/hand/right/input/palm_ext/poseI'm only adding the palm pose paths if the XR_EXT_palm_pose is supported by the runtime and this has worked fine up until now and I believe that is allowed per the specification. The specification for the palm pose extension claims:When this extension is active, a runtime must accept the …/input/palm_ext/pose component path for all interaction profiles that are validHas the behavior of the palm pose extension changed in the latest runtime?
I wrote a simple app (using XrBodyFaceEyeSocial and XrSptaialAnchor in the Samples/XrSamples folder as a template) where I would like to use passthrough. In the logcat, I see the following and I am not sure how to interpret it. CompositorVR: Unmatched layer (ID 1162, content 3) used as replacement for background passthrough layer, because its required proxy layer could not be found More details, I tried to port over the Creation of the passthrough layer from XrSpatialAnchor into the script for XrBodyFaceEyeSocial.
I have an app that users sideloads on their occulus devices, only issue is that it starts in portrait mode. Is there any way to detect occulus device using android sdk so i could force landscape view then?After some more research looks like all android 2d apps starts very small and users have to manually resize them. Is there any way to programatically make them large from the startup?
Hi,For an app that I created, I was wondering what is the maximum sampling rate that I can achieve from the IMU sensors (accelerometer and gyroscope). I am currently using a native app that Meta has published hello_xr running it on Android Studio and logging the data in logcat. However, this has given me a 70Hz sampling rate. What is the highest possible sampling in Quest 2 or 3? How can I achieve this with my app?
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.