Skip to content

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

1.14.0

16 Dec 14:01
Compare
Choose a tag to compare

[1.14.0] - 2024-12-13

Added

  • Added support for the RG16f texture format and a selection mode for the texture format of the Space Warp motion vector texture for the Meta Quest feature. You can select the format for the Space Warp motion vector texture in Editor > Project Settings > XR Plug-in Management > OpenXR > Android tab > Meta Quest Support feature settings.
  • Added the following extension methods for XrResult: IsSuccess(), IsUnqualifiedSuccess(), and IsError(), which you can use to more conveniently reason about XrResult values.
  • Added new values to the XrResult enum to match the values present in the native XrResult type in OpenXR 1.1.36.
  • Added support for locating the OpenXR loader for the Meta XR Simulator on OSX.
  • Added new Optimize Multiview Render Regions settings option for Meta Quest devices. In the context of XR rendering, Multiview Render Regions enables the drivers to skip shader invocations (and rendering work) for screen areas outside of the user's view (such as the nasal regions that the user can't see within the headset). You can toggle on support for Multiview Render Regions in Editor > Project Settings > XR Plug-in Management > OpenXR > Android tab > Meta Quest Support feature settings. Note that Multiview Render Regions requires Symmetric Projection settings toggle turned on, and Render Mode set to Single Pass Instanced \ Multi-view. Multiview Render Regions is only supported in the Vulkan Graphics API, and it is activated at application start up.
  • Added project validation warning to prevent user from using URP upscaling with XR.

Deprecated

  • Deprecated XrResult.TimeoutExpored and XrResult.AndroidThreadSettingsdFailureKHR and replaced them with correctly spelled enum values.

Fixed

  • Occlusion Mask vertices projected based on FOV.

1.13.2

28 Nov 11:01
Compare
Choose a tag to compare

[1.13.2] - 2024-11-15

Added

  • Added UWP platform as one of the supported build targets for OpenXR Composition Layer feature.

Fixed

  • Fixed compiler errors when using experimental versions of the XR Composition Layers package (versions older than 1.0.0). You are required to use XR Composition Layers 1.0.0 or newer for OpenXR support.

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