# AdaptivePerformanceSubsystem.APProvider

> An abstract class to be implemented by providers of this subsystem.

## Definition

* **Type:** Class
* **Namespace:** [UnityEngine.AdaptivePerformance.Provider](/engine/6000.6/script-reference/unityengine/adaptiveperformance/provider.md)
* **Assembly:** UnityEngine.AdaptivePerformanceModule
* **Inherits from:** [SubsystemProvider\<AdaptivePerformanceSubsystem>](/engine/6000.6/script-reference/unityengine/subsystemsimplementation/subsystemprovider.md)

```csharp
public abstract class AdaptivePerformanceSubsystem.APProvider : SubsystemProvider<AdaptivePerformanceSubsystem>
```

## Fields

| Value                                                                                                                                       | Description                                   |
| ------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------- |
| [m\_Running](/engine/6000.6/script-reference/unityengine/adaptiveperformance/provider/adaptiveperformancesubsystem/approvider/m-running.md) | Returns if the provider is currently running. |

## Properties

| Property                                                                                                                                                               | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [ApplicationLifecycle](/engine/6000.6/script-reference/unityengine/adaptiveperformance/provider/adaptiveperformancesubsystem/approvider/applicationlifecycle.md)       | Application lifecycle events to be consumed by subsystem. Can be null if the subsystem does not need special handling on life-cycle events. The returned reference does not change after startup.                                                                                                                                                                                                                                                                                                                                                                            |
| [Capabilities](/engine/6000.6/script-reference/unityengine/adaptiveperformance/provider/adaptiveperformancesubsystem/approvider/capabilities.md)                       | Bitset of supported features. Does not change after startup.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| [Initialized](/engine/6000.6/script-reference/unityengine/adaptiveperformance/provider/adaptiveperformancesubsystem/approvider/initialized.md)                         | Returns if the subsystem is initialized successfully.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| [PerformanceLevelControl](/engine/6000.6/script-reference/unityengine/adaptiveperformance/provider/adaptiveperformancesubsystem/approvider/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.APProvider.Capabilities](/engine/6000.6/script-reference/unityengine/adaptiveperformance/provider/adaptiveperformancesubsystem/approvider/capabilities.md). The returned reference does not change after startup. |
| [running](/engine/6000.6/script-reference/unityengine/adaptiveperformance/provider/adaptiveperformancesubsystem/approvider/running.md)                                 | Returns if the subsystem is running.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| [Stats](/engine/6000.6/script-reference/unityengine/adaptiveperformance/provider/adaptiveperformancesubsystem/approvider/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/approvider/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/approvider/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.APProvider.Capabilities](/engine/6000.6/script-reference/unityengine/adaptiveperformance/provider/adaptiveperformancesubsystem/approvider/capabilities.md). |
