Runtime performance scaling
Introduction to runtime performance scaling
Runtime performance scaling is the process of adjusting an application’s quality settings while it’s running. The goal is to maintain a stable frame rate and manage device resources like power and temperature by dynamically trading visual quality for performance.
Systems for runtime performance scaling
In Unity, you can control quality settings at runtime with the following tools and APIs:
- Dynamic ResolutionA Camera setting that allows you to dynamically scale individual render targets to reduce workload on the GPU. More info
See in Glossary: Adjusts rendering resolution automatically to maintain a target frame rate in URP and HDRP.
-
QualitySettings API: Defines and changes between performance tiers with different settings for shadows, textures, and more.
-
Level of Detail (LOD): Modifies the complexity of rendered models by changing the LODThe Level Of Detail (LOD) technique is an optimization that reduces the number of triangles that Unity has to render for a GameObject when its distance from the Camera increases. More info
See in Glossary bias, using simpler or more detailed meshes based on performance needs.
-
Frame Timing Manager: Provides low-level CPU and GPU timing data, enabling scriptsA piece of code that allows you to create your own Components, trigger game events, modify Component properties over time and respond to user input in any way you like. More info
See in Glossary to detect performance bottlenecks and respond as needed.
You can also use the Adaptive Performance system, which monitors device performance and automatically manages these foundational features and APIs to meet your performance targets. This system is especially useful on mobile devices, where hardware constraints can change rapidly.
Additional resources
Runtime performance scaling