# AdaptivePerformanceSubsystem

> A class to define a provider subsystem for Adaptive Performance.

## Definition

* **Type:** Class
* **Namespace:** [UnityEngine.AdaptivePerformance.Provider](/engine/6000.6/script-reference/unityengine/adaptiveperformance/provider.md)
* **Assembly:** UnityEngine.AdaptivePerformanceModule
* **Inherits from:** [AdaptivePerformanceSubsystemBase\<AdaptivePerformanceSubsystem, AdaptivePerformanceSubsystemDescriptor, APProvider>](/engine/6000.6/script-reference/unityengine/adaptiveperformance/provider/adaptiveperformancesubsystembase3.md)
* **Implements:** [ISubsystem](/engine/6000.6/script-reference/unityengine/isubsystem.md)

```csharp
public class AdaptivePerformanceSubsystem : AdaptivePerformanceSubsystemBase<AdaptivePerformanceSubsystem, AdaptivePerformanceSubsystemDescriptor, AdaptivePerformanceSubsystem.APProvider>, ISubsystem
```

## Constructors

| Constructor                                                                                                                                     | Description                                               |
| ----------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------- |
| [AdaptivePerformanceSubsystem()](/engine/6000.6/script-reference/unityengine/adaptiveperformance/provider/adaptiveperformancesubsystem/ctor.md) | Main constructor, not used in the subsystem specifically. |

## Properties

| Property                                                                                                                                                    | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [ApplicationLifecycle](/engine/6000.6/script-reference/unityengine/adaptiveperformance/provider/adaptiveperformancesubsystem/applicationlifecycle.md)       | Lifecycle of the Subsystem.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| [Capabilities](/engine/6000.6/script-reference/unityengine/adaptiveperformance/provider/adaptiveperformancesubsystem/capabilities.md)                       | Bitset of supported features. Does not change after startup.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| [Initialized](/engine/6000.6/script-reference/unityengine/adaptiveperformance/provider/adaptiveperformancesubsystem/initialized.md)                         | Returns if the subsystem is initialized successfully.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| [PerformanceLevelControl](/engine/6000.6/script-reference/unityengine/adaptiveperformance/provider/adaptiveperformancesubsystem/performancelevelcontrol.md) | Control CPU or GPU performance levels of the device. Can be null if the subsystem does not support controlling CPU/GPU performance levels. Is null when the [Feature.PerformanceLevelControl](/engine/6000.6/script-reference/unityengine/adaptiveperformance/provider/feature/performancelevelcontrol.md) bit is not set in [AdaptivePerformanceSubsystem.Capabilities](/engine/6000.6/script-reference/unityengine/adaptiveperformance/provider/adaptiveperformancesubsystem/capabilities.md). The returned reference does not change after startup. |
| [Stats](/engine/6000.6/script-reference/unityengine/adaptiveperformance/provider/adaptiveperformancesubsystem/stats.md)                                     | Generates a human readable string of subsystem internal stats. Optional and only used for development.                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| [Version](/engine/6000.6/script-reference/unityengine/adaptiveperformance/provider/adaptiveperformancesubsystem/version.md)                                 | Returns the version of the subsystem implementation. Can be used together with SubsystemDescriptor to identify a subsystem.                                                                                                                                                                                                                                                                                                                                                                                                                            |

## Methods

| Method                                                                                                                    | Description                                                                                                                                                                                                                                                                                                    |
| ------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Update](/engine/6000.6/script-reference/unityengine/adaptiveperformance/provider/adaptiveperformancesubsystem/update.md) | To be called once per frame. The returned data structure's fields are populated with the latest available data, according to the supported [AdaptivePerformanceSubsystem.Capabilities](/engine/6000.6/script-reference/unityengine/adaptiveperformance/provider/adaptiveperformancesubsystem/capabilities.md). |

## Classes

| Class                                                                                                                                                          | Description                                                         |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- |
| [AdaptivePerformanceSubsystem.APProvider](/engine/6000.6/script-reference/unityengine/adaptiveperformance/provider/adaptiveperformancesubsystem/approvider.md) | An abstract class to be implemented by providers of this subsystem. |

## Inheritance

**Inherited Members:**

* [AdaptivePerformanceSubsystemBase\<AdaptivePerformanceSubsystem, AdaptivePerformanceSubsystemDescriptor, APProvider>.Update()](/engine/6000.6/script-reference/unityengine/adaptiveperformance/provider/adaptiveperformancesubsystembase3/update.md)
* [AdaptivePerformanceSubsystemBase\<AdaptivePerformanceSubsystem, AdaptivePerformanceSubsystemDescriptor, APProvider>.Capabilities()](/engine/6000.6/script-reference/unityengine/adaptiveperformance/provider/adaptiveperformancesubsystembase3/capabilities.md)
* [AdaptivePerformanceSubsystemBase\<AdaptivePerformanceSubsystem, AdaptivePerformanceSubsystemDescriptor, APProvider>.ApplicationLifecycle()](/engine/6000.6/script-reference/unityengine/adaptiveperformance/provider/adaptiveperformancesubsystembase3/applicationlifecycle.md)
* [AdaptivePerformanceSubsystemBase\<AdaptivePerformanceSubsystem, AdaptivePerformanceSubsystemDescriptor, APProvider>.PerformanceLevelControl()](/engine/6000.6/script-reference/unityengine/adaptiveperformance/provider/adaptiveperformancesubsystembase3/performancelevelcontrol.md)
* [AdaptivePerformanceSubsystemBase\<AdaptivePerformanceSubsystem, AdaptivePerformanceSubsystemDescriptor, APProvider>.Version()](/engine/6000.6/script-reference/unityengine/adaptiveperformance/provider/adaptiveperformancesubsystembase3/version.md)
* [AdaptivePerformanceSubsystemBase\<AdaptivePerformanceSubsystem, AdaptivePerformanceSubsystemDescriptor, APProvider>.Stats()](/engine/6000.6/script-reference/unityengine/adaptiveperformance/provider/adaptiveperformancesubsystembase3/stats.md)
* [AdaptivePerformanceSubsystemBase\<AdaptivePerformanceSubsystem, AdaptivePerformanceSubsystemDescriptor, APProvider>.Initialized()](/engine/6000.6/script-reference/unityengine/adaptiveperformance/provider/adaptiveperformancesubsystembase3/initialized.md)
* [SubsystemWithProvider.Start()](/engine/6000.6/script-reference/unityengine/subsystemsimplementation/subsystemwithprovider/start.md)
* [SubsystemWithProvider.Stop()](/engine/6000.6/script-reference/unityengine/subsystemsimplementation/subsystemwithprovider/stop.md)
* [SubsystemWithProvider.Destroy()](/engine/6000.6/script-reference/unityengine/subsystemsimplementation/subsystemwithprovider/destroy.md)
* [SubsystemWithProvider.running](/engine/6000.6/script-reference/unityengine/subsystemsimplementation/subsystemwithprovider/running.md)
