docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class XrPerformanceSettingsFeature

    Allows interaction with the Performance settings API, which allows the application to provide hints to the runtime about the performance characteristics of the application, and to receive notifications from the runtime about changes in performance state.

    Inheritance
    object
    Object
    ScriptableObject
    OpenXRFeature
    XrPerformanceSettingsFeature
    Inherited Members
    OpenXRFeature.enabled
    OpenXRFeature.xrGetInstanceProcAddr
    OpenXRFeature.HookGetInstanceProcAddr(IntPtr)
    OpenXRFeature.OnSubsystemCreate()
    OpenXRFeature.OnSubsystemStart()
    OpenXRFeature.OnSubsystemStop()
    OpenXRFeature.OnSubsystemDestroy()
    OpenXRFeature.OnSystemChange(ulong)
    OpenXRFeature.OnSessionCreate(ulong)
    OpenXRFeature.OnAppSpaceChange(ulong)
    OpenXRFeature.OnSessionStateChange(int, int)
    OpenXRFeature.OnSessionBegin(ulong)
    OpenXRFeature.OnSessionEnd(ulong)
    OpenXRFeature.OnSessionExiting(ulong)
    OpenXRFeature.OnSessionDestroy(ulong)
    OpenXRFeature.OnInstanceDestroy(ulong)
    OpenXRFeature.OnSessionLossPending(ulong)
    OpenXRFeature.OnInstanceLossPending(ulong)
    OpenXRFeature.OnFormFactorChange(int)
    OpenXRFeature.OnViewConfigurationTypeChange(int)
    OpenXRFeature.OnEnvironmentBlendModeChange(XrEnvironmentBlendMode)
    OpenXRFeature.OnEnabledChange()
    OpenXRFeature.PathToString(ulong)
    OpenXRFeature.StringToPath(string)
    OpenXRFeature.GetCurrentInteractionProfile(ulong)
    OpenXRFeature.GetCurrentInteractionProfile(string)
    OpenXRFeature.GetCurrentAppSpace()
    OpenXRFeature.GetViewConfigurationTypeForRenderPass(int)
    OpenXRFeature.SetEnvironmentBlendMode(XrEnvironmentBlendMode)
    OpenXRFeature.GetEnvironmentBlendMode()
    OpenXRFeature.GetValidationChecks(List<OpenXRFeature.ValidationRule>, BuildTargetGroup)
    OpenXRFeature.CreateSubsystem<TDescriptor, TSubsystem>(List<TDescriptor>, string)
    OpenXRFeature.StartSubsystem<T>()
    OpenXRFeature.StopSubsystem<T>()
    OpenXRFeature.DestroySubsystem<T>()
    OpenXRFeature.OnEnable()
    OpenXRFeature.OnDisable()
    OpenXRFeature.Awake()
    OpenXRFeature.GetAction(InputAction)
    OpenXRFeature.GetAction(InputDevice, InputFeatureUsage)
    OpenXRFeature.GetAction(InputDevice, string)
    OpenXRFeature.RegisterStatsDescriptor(string, OpenXRFeature.StatFlags)
    OpenXRFeature.SetStatAsFloat(ulong, float)
    OpenXRFeature.SetStatAsUInt(ulong, uint)
    ScriptableObject.SetDirty()
    ScriptableObject.CreateInstance(string)
    ScriptableObject.CreateInstance(Type)
    ScriptableObject.CreateInstance<T>()
    Object.GetInstanceID()
    Object.GetHashCode()
    Object.Equals(object)
    Object.Instantiate(Object, Vector3, Quaternion)
    Object.Instantiate(Object, Vector3, Quaternion, Transform)
    Object.Instantiate(Object)
    Object.Instantiate(Object, Transform)
    Object.Instantiate(Object, Transform, bool)
    Object.Instantiate<T>(T)
    Object.Instantiate<T>(T, Vector3, Quaternion)
    Object.Instantiate<T>(T, Vector3, Quaternion, Transform)
    Object.Instantiate<T>(T, Transform)
    Object.Instantiate<T>(T, Transform, bool)
    Object.Destroy(Object, float)
    Object.Destroy(Object)
    Object.DestroyImmediate(Object, bool)
    Object.DestroyImmediate(Object)
    Object.FindObjectsOfType(Type)
    Object.FindObjectsOfType(Type, bool)
    Object.FindObjectsByType(Type, FindObjectsSortMode)
    Object.FindObjectsByType(Type, FindObjectsInactive, FindObjectsSortMode)
    Object.DontDestroyOnLoad(Object)
    Object.DestroyObject(Object, float)
    Object.DestroyObject(Object)
    Object.FindSceneObjectsOfType(Type)
    Object.FindObjectsOfTypeIncludingAssets(Type)
    Object.FindObjectsOfType<T>()
    Object.FindObjectsByType<T>(FindObjectsSortMode)
    Object.FindObjectsOfType<T>(bool)
    Object.FindObjectsByType<T>(FindObjectsInactive, FindObjectsSortMode)
    Object.FindObjectOfType<T>()
    Object.FindObjectOfType<T>(bool)
    Object.FindFirstObjectByType<T>()
    Object.FindAnyObjectByType<T>()
    Object.FindFirstObjectByType<T>(FindObjectsInactive)
    Object.FindAnyObjectByType<T>(FindObjectsInactive)
    Object.FindObjectsOfTypeAll(Type)
    Object.FindObjectOfType(Type)
    Object.FindFirstObjectByType(Type)
    Object.FindAnyObjectByType(Type)
    Object.FindObjectOfType(Type, bool)
    Object.FindFirstObjectByType(Type, FindObjectsInactive)
    Object.FindAnyObjectByType(Type, FindObjectsInactive)
    Object.ToString()
    Object.name
    Object.hideFlags
    object.Equals(object, object)
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    Namespace: UnityEngine.XR.OpenXR.Features.Extensions.PerformanceSettings
    Assembly: Unity.XR.OpenXR.dll
    Syntax
    public class XrPerformanceSettingsFeature : OpenXRFeature
    Remarks

    Refer to XR performance settings for additional information.

    Fields

    extensionString

    Name of the OpenXR extension for performance settings.

    Declaration
    public const string extensionString = "XR_EXT_performance_settings"
    Field Value
    Type Description
    string

    featureId

    The feature id string.

    Declaration
    public const string featureId = "com.unity.openxr.feature.extension.performance_settings"
    Field Value
    Type Description
    string

    Methods

    OnInstanceCreate(ulong)

    When an instance of the Performance setting feature is created, it allows us to confirm that the instance has been created, that the extension is enabled and we have successfully registed the performance notification callback

    Declaration
    protected override bool OnInstanceCreate(ulong xrInstance)
    Parameters
    Type Name Description
    ulong xrInstance

    XR Session Instance

    Returns
    Type Description
    bool

    True if the instance has successfully been created. Otherwise it returns false.

    Overrides
    OpenXRFeature.OnInstanceCreate(ulong)

    SetPerformanceLevelHint(PerformanceDomain, PerformanceLevelHint)

    Provides the OpenXR runtime with the desired performance level to be used for the specified ___domain.

    Declaration
    public static bool SetPerformanceLevelHint(PerformanceDomain ___domain, PerformanceLevelHint level)
    Parameters
    Type Name Description
    PerformanceDomain ___domain

    Domain for which the performance hit will be sent.

    PerformanceLevelHint level

    Desired performance asked by the application.

    Returns
    Type Description
    bool

    True if the performance level hint was successfully set, false otherwise.

    Remarks

    Refer to [Performance level hints](xref: openxr-performance-settings#performance-settings-level-hints) for additional information.

    Events

    OnXrPerformanceChangeNotification

    Subscribe to this event to receive performance change notifications from the OpenXR runtime.

    Declaration
    public static event UnityAction<PerformanceChangeNotification> OnXrPerformanceChangeNotification
    Event Type
    Type Description
    UnityAction<PerformanceChangeNotification>
    Remarks

    Refer to Performance notifications for additional information.

    Examples

    Example of subscribing to the event and handling the performance change notification:

    XrPerformanceSettingsFeature.OnXrPerformanceChangeNotification += OnGPUPerformanceChange;

    Example of handling the performance change notification:

    void OnGPUPerformanceChange(PerformanceChangeNotification notification)
    {
        if (notification.___domain != Domain.GPU)
        {
            return;
        }
    
    if (notification.toLevel ==  PerformanceNotificationLevel.Normal)
    {
        // Performance has improved
        UseDefaultQuality();
    }
    else
    {
        // Performance has degraded
        UseReducedQuality();
    }
    

    }

    In This Article
    Back to top
    Copyright © 2024 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)