Releases: needle-mirror/com.unity.xr.openxr
Releases · needle-mirror/com.unity.xr.openxr
1.13.1
1.13.0
[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 toTarget 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
, andOpenXRInput.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 theXR_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 theDisplaySubsystem
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
[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
[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 theOpenXRSettings.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 andColor 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
[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
[1.11.1-exp.1] - 2024-06-12
Fixed
- Fixed Metal API initialization.
1.11.0
[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
, andImpaired
. Refer to XR performance settings for more information. This requires the XR_EXT_performance_settings extension is enabled in the OpenXR runtime. - Added a
Quest 3
option to theTarget 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
andgrasp_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 theOpenXRFeature
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 theOpenXRFeature
abstract class, which lets your OpenXR feature to feed a float value into a specific statistic that was previously registered using theRegisterStatsDescriptor
. This method is thread safe. - Added
SetStatAsUInt
method to theOpenXRFeature
abstract class, which lets your OpenXR feature to feed an unsigned integer value into a specific statistic that was previously registered using theRegisterStatsDescriptor
. 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
. IfXR_EXT_user_presence
is not supported, retrieved value will be based onOpenXRUtility.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
. IfXR_EXT_user_presence
is not supported, retrieved value will be based onOpenXRUtility.IsSessionFocused
, which is the default return value before 1.11.0.
1.11.0-exp.1
[1.11.0-exp.1] - 2024-02-25
Added
1.10.0
[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
[1.9.1] - 2023-10-19
Added
- Implemented
InputSystem.customBindingPathValidators
interface to show UI warnings in theInputAsset
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
andGetDeviceLayoutName
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
, andEye 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.