Skip to content

Releases: needle-mirror/com.unity.xr.openxr

1.13.1

06 Nov 12:01
Compare
Choose a tag to compare

[1.13.1] - 2024-10-31

Fixed

  • Conformance Automation Feature: Removed assert for optional entry point xrSetInputDeviceVelocityUNITY.

1.13.0

08 Oct 11:01
Compare
Choose a tag to compare

[1.13.0] - 2024-09-16

Added

  • Added Meta XR Simulator as runtime option for OpenXR. One can search for the com.meta.xr.simulator package to add the Open XR runtime to the dropdown list of available runtimes during Play Mode.
  • Added a Quest 3S option to Target Devices in the Meta Quest Support settings. This specifies the application's support for Quest 3S devices within the Android manifest.
  • Added IUnityXRDisplay::CreateTexture API to C# script so providers can access them for functionality.
  • Added APIs to provide an alternative to the Input System: OpenXRFeature.GetAction, OpenXRInput.GetActionHandle, OpenXRInput.SendHapticImpulse, OpenXRInput.StopHapticImpulse, OpenXRInput.TrySetControllerLateLatchAction, and OpenXRInput.GetActionIsActive.
  • Added a "Controller XRInput" sample to demonstrate how to access input data without the Input System.
  • Added experimental support for XR Composition Layers support. Install the Unity Composition Layer (com.unity.xr.compositionlayers) package to use composition layers in an OpenXR project.
  • Added support for the XR_KHR_maintenance1 extension. This low-level extension provides support for new capabilities promoted in the OpenXR 1.1 standard, which may be needed for backwards compatibility for using new extensions in OpenXR loaders using the version 1.0 of the standard. You need to request this extension if your project will make use of OpenXR 1.1 extenstions that need this extension and are backwards compatible with loaders based on the 1.0 version of the OpenXR standard. If your project targets only the OpenXR 1.1 version, you don't need to request this extension. To use the XR_KHR_maintenance1 extension, you must request it as part of your own OpenXR feature definition. Refer to XR_KHR_maintenance1 for more information on the extension.
  • Added OpenXR 1.1 Runtime support.

Changed

  • Added Known Issue to documentation covering how OpenXR doesn't provide Acceleration or Angular Acceleration values for input devices, and these will always return 0.
  • Added a validation rule requiring Multi-view to be enabled in order to enable Symmetric Projection.
  • Implements the construction and maintenance of native composition layers in C# via our LayerProvider classes inheriting from OpenXRCustomLayerHandler.
  • Changed OpenXR loader version to 1.1.36.

Fixed

  • Symmetric Projection was being gated behind foveation extensions being enabled. This wasn't necessary and that dependency has been removed.
  • Fixed a bug that causes a user to need a validation rule to make OpenXR loader active.
  • Fixed m_BlendMode from being overwritten whenever the DisplaySubsystem restarts.
  • Fixed Metal API initialization.
  • Fixed Custom Composition Layer Feature not showing up in the OpenXR feature setting UI after importing into project.
  • Fixed a crash with composition layers in scene due to race condition.

1.12.1

17 Sep 11:01
Compare
Choose a tag to compare

[1.12.1] - 2024-09-05

  • Fixed rendering bug when rendering viewport scale < 1.
  • Fixed issue where the Editor would hang when renaming and then viewing OpenXR Settings.

1.12.0

07 Aug 23:01
Compare
Choose a tag to compare

[1.12.0] - 2024-08-01

Added

  • Add class MetaQuestTouchPlusControllerProfile.QuestTouchPlusController interaction profile to support Meta Quest Touch Plus Controllers.
  • Added a validation rule to warn you that soft shadows can negatively affect performance for Microsoft HoloLens.
  • Added a validation rule to infrom you to make the OpenXR Loader an active loader in XR Plugin Management if there are active OpenXR features in the OpenXR settings.
  • Added OpenXRSettings.autoColorSubmissionMode boolean property to specify OpenXR to use a platform-supported color format in the display swapchain, or for you to manually set which format should OpenXR to use.
  • Added OpenXRSettings.colorSubmissionModes array property to control the color format used by the OpenXR display swapchain. The available options can be chosen from the OpenXRSettings.ColorSubmissionModeGroup enum. OpenXR will use supported color formats by the platform, starting from the first option in the list. In case none of the color formats supplied is supported by the platform, an error will be thrown. If no color formats are assigned, the format used will be RGBA32.
  • Added Automatic Color Submission Mode toggle and Color Submission Modes list to the OpenXR project settings tab, allowing you to manually specify the preferred color format to be used by the display swapchain. OpenXR will use supported color formats by the platform, starting from the first option in the list. In case none of the color formats supplied is supported by the platform, an error will be thrown. If no color formats are assigned, the format used will be RGBA32.

Fixed

  • Fixed sort order of OpenXR features listed based first on priority, then by name, preventing spurious changes in Settings files.

1.12.0-exp.1

03 Jul 16:01
Compare
Choose a tag to compare

[1.12.0-exp.1] - 2024-06-28

Fixed

  • Fixed Custom Composition Layer Feature not showing up in the OpenXR feature setting UI after importing into project.
  • Fixed a crash with composition layers in scene due to race condition.

Changed

  • Implements the construction and maintenance of native composition layers in C# via our LayerProvider classes inheriting from OpenXRCustomLayerHandler.

1.11.1-exp.1

14 Jun 20:01
Compare
Choose a tag to compare

[1.11.1-exp.1] - 2024-06-12

Fixed

  • Fixed Metal API initialization.

1.11.0

10 May 10:01
Compare
Choose a tag to compare

[1.11.0] - 2024-05-01

Added

  • Added the XrPerformanceSettings.SetPerformanceLevelHint static method, which lets you send performance level suggestions to the runtime. These hints help an OpenXR runtime to optimize the use of hardware resources according to the application needs. Refer to XR performance settings for more information. This requires the XR_EXT_performance_settings extension is enabled in the OpenXR runtime.
  • Added the XrPerformanceSettings.OnXrPerformanceChangeNotification event, which provides notifications from the OpenXR runtime when a device's thermal, rendering, or compositor performance state changes. The performance states include: Normal, Warning, and Impaired. Refer to XR performance settings for more information. This requires the XR_EXT_performance_settings extension is enabled in the OpenXR runtime.
  • Added aQuest 3 option to the Target Devices set in the Meta Quest Support settings. This specifies the application's support for Quest 3 devices within the Android manifest.
  • Added missing ButtonControl actions pinch_ext, aim_activate_ext and grasp_ext for Hand Interaction Profile.
  • Added API OpenXRUtility.ComputePoseToWorldSpace to recalculate object position and rotation from tracking-space to world-space. Applicable for use cases such as teleporting.
  • Added support for using Local Floor Reference Space in the OpenXR runtime. Useful in applications that require the user to be seated or in a standing fixed position.
  • Added PreInit flags to allow users to disable the main frame buffer and use offscreen swapchain when using Vulkan on Android in the OpenXR settings.
  • Added functional DX12 mock runtime support to the OpenXR package.
  • Added RegisterStatsDescriptor method to the OpenXRFeature abstract class, which lets your OpenXR feature to register a new statistic that can be feed into and queried at runtime. This method is not thread safe.
  • Added SetStatAsFloat method to the OpenXRFeature abstract class, which lets your OpenXR feature to feed a float value into a specific statistic that was previously registered using the RegisterStatsDescriptor. This method is thread safe.
  • Added SetStatAsUInt method to the OpenXRFeature abstract class, which lets your OpenXR feature to feed an unsigned integer value into a specific statistic that was previously registered using the RegisterStatsDescriptor. This method is thread safe.
  • Added the OpenXRSettings.RefreshRecenterSpace static method, which lets you regenerate the internal XR space used for recentering, without the need to wait until a recenter event is received by the OpenXR SDK. Note that this method does not perform a recenter event in any way, as this can only be done by the device runtime.
  • Added Pre-pass Foveated Rendering for both d3d12 and Vulkan. This feature utilizes Fragment Density Mapping on Quest Devices and Fragment Shading Rate on PC to optimize rendering performance. Refer to Foveated Rendering for more information.
  • Added OpenXRUtility.IsSessionFocused to return if the current session is in the focused state.
  • Added OpenXRUtility.IsUserPresent to return the change of user presence, such as when the user has taken off or put on an XR headset. If the system does not support user presence sensing, runtime assumes that the user is always present and IsUserPresent always returns True. If the system supports the sensing of user presence, returns true when detected the presence of a user and returns false when detected the absence of a user.

Changed

  • Changed tracking origin to use Local Floor in place of Floor by default.
  • Changed delta time calculation to utilize OpenXR for frame estimation. Previously internal Unity mechanisms were used. This feature is currently disabled but will be available in the future.
  • When retrieving input feature from CommonUsages.userPresence, if XR_EXT_user_presence is supported by the current system, retrieved value will be the same as OpenXRUtility.IsUserPresent. If XR_EXT_user_presence is not supported, retrieved value will be based on OpenXRUtility.IsSessionFocused, which is the default return value before 1.11.0.

Fixed

  • Fixed Marshal to correctly read the number of bytes for booleans in C++.
  • Fixed crash that occurs while cleaning up destroyed swapchains in OpenXR.
  • Fixed Depth Texture flag disparity between the OpenXR and Oculus providers.

Added

  • Added OpenXRUtility.IsSessionFocused to return if the current session is in the focused state.
  • Added OpenXRUtility.IsUserPresent to return the change of user presence, such as when the user has taken off or put on an XR headset. If the system does not support user presence sensing, runtime assumes that the user is always present and IsUserPresent always returns True. If the system supports the sensing of user presence, returns true when detected the presence of a user and returns false when detected the absence of a user.

Changed

  • When retrieving input feature from CommonUsages.userPresence, if XR_EXT_user_presence is supported by the current system, retrieved value will be the same as OpenXRUtility.IsUserPresent. If XR_EXT_user_presence is not supported, retrieved value will be based on OpenXRUtility.IsSessionFocused, which is the default return value before 1.11.0.

1.11.0-exp.1

09 May 13:50
Compare
Choose a tag to compare

[1.11.0-exp.1] - 2024-02-25

Added

1.10.0

09 May 13:50
Compare
Choose a tag to compare

[1.10.0] - 2024-01-26

Added

  • Added OpenXRSettings.VulkanAdditionalGraphicsQueue property to request at startup an additional Vulkan graphics queue in devices that require it. The setting can be enabled through the Project settings UI and build code.
  • Added Optimize Buffer Discards (Vulkan) feature setting option within MetaQuestFeature.
  • Added a new optional validation rule to switch to use InputSystem.Controls.StickControl instead of Vector2Control for thumbsticks. StickControl allows more input options for thumbstick-based control, such as acting as both a combined 2D vector, two independent axes or a four-way Dpad with 4 independent buttons.

Changed

  • Updated project validation rule for Meta Quest Feature - "Select Oculus Touch Interaction Profile or Meta Quest Pro Touch Interaction Profile to pair with." from error to warning to allow other interaction profiles to be enabled as well, like eye gaze or palm pose.

Fixed

  • Fixed Meta XR Space Warp feature crashing issue when trying to access the depth swapchain.
  • Fixed Meta XR Space Warp depth subimage imageArrayIndex setup wrong issue for multiview render mode.
  • Fixed a bug where Palm Pose won't work if the Eye Gaze Interaction Profile is added to the project.
  • Fixed "The type 'AnalyticsResult' is defined in an assembly that is not referenced" error thrown.
  • Fixed UnitySwapchain destructor to completely destroy swapchains to avoid memory leak.
  • Fixed OpenXR Settings UI to not render settings on platforms that aren't supported.
  • Fixed Android manifest entries were added when the feature was not enabled.

1.9.1

09 May 13:50
Compare
Choose a tag to compare

[1.9.1] - 2023-10-19

Added

  • Implemented InputSystem.customBindingPathValidators interface to show UI warnings in the InputAsset Editor when added bindings to a disabled interaction profile and when none of the controller type interaction profiles are enabled, but added bindings using generic XRController.
  • Added APIs GetInteractionProfileType and GetDeviceLayoutName to support binding path validator feature.
  • Added API TrySetControllerLateLatchAction to support controller late latching. Also added MarkLateLatchNode.cs in Controller Sample for usages example.
  • Added support for Meta XR feature Symmetric Projection, Space Warp, and Eye Tracked Foveation.
  • Added the option to enable Subsampled Layout when creating a Vulkan swapchain.
  • Added support for recentering Floor tracking origin using new API, OpenXRSettings.SetAllowRecentering. This static method allows the app to recenter the tracking origin space when requested by the runtime. Note that calling the method won't trigger a recenter event.
  • Added support for Meta XR feature System Splash Screen.
  • Added public API for MetaQuestFeature.forceRemoveInternetPermission

Changed

  • Updated Input System package dependency to 1.6.3.
  • Updated XR management dependency to 4.4.0.
  • Updated OpenXR loader to 1.0.29.
  • Changed MockRuntime and its FeatureSet to public.

Fixed

  • Fixed incorect XR Validation rules after regenerating the OpenXR package settings asset.
  • Fixed analytics code being called when disabled.
  • Fixed latency issue with controller poses.
  • Fixed an XR_ERROR_SESSION_NOT_RUNNING error if xrRequestExitSession is called when the session is not running.