UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Scalability Namespace Reference

Classes

struct  FQualityLevels
 
struct  FResolutionPreset
 

Enumerations

enum class  EQualityLevelBehavior { EAbsolute , ERelativeToMax }
 

Functions

int32 ComputeOptionFromPerfIndex (const FString &GroupName, float CPUPerfIndex, float GPUPerfIndex)
 
FString GetScalabilitySectionString (const TCHAR *InGroupName, int32 InQualityLevel, int32 InNumLevels)
 
float GetResolutionScreenPercentage ()
 
FText GetScalabilityNameFromQualityLevel (int32 QualityLevel)
 
void OnChangeResolutionQuality (IConsoleVariable *Var)
 
void OnChangeViewDistanceQuality (IConsoleVariable *Var)
 
void OnChangeAntiAliasingQuality (IConsoleVariable *Var)
 
void OnChangeShadowQuality (IConsoleVariable *Var)
 
void OnChangeGlobalIlluminationQuality (IConsoleVariable *Var)
 
void OnChangeReflectionQuality (IConsoleVariable *Var)
 
void OnChangePostProcessQuality (IConsoleVariable *Var)
 
void OnChangeTextureQuality (IConsoleVariable *Var)
 
void OnChangeEffectsQuality (IConsoleVariable *Var)
 
void OnChangeFoliageQuality (IConsoleVariable *Var)
 
void OnChangeShadingQuality (IConsoleVariable *Var)
 
void OnChangeLandscapeQuality (IConsoleVariable *Var)
 
void InitScalabilitySystem ()
 
TArray< FResolutionPresetGetResolutionPresets ()
 
ENGINE_API float GetResolutionQualityFromGPUPerfIndex (float GPUPerfIndex)
 
ENGINE_API FQualityLevels ComputeQualityLevelsFromPerfIndex (float CPUPerfIndex, float GPUPerfIndex)
 
FQualityLevels BenchmarkQualityLevels (uint32 WorkScale, float CPUMultiplier, float GPUMultiplier)
 
void ProcessCommand (const TCHAR *Cmd, FOutputDevice &Ar)
 
template<typename T >
void SetQualityLevelCVar (TAutoConsoleVariable< T > &CVarToEdit, const T DesiredValue, const T OverrideValue, bool bForce)
 
void SetQualityLevels (const FQualityLevels &QualityLevels, bool bForce)
 
FQualityLevels GetQualityLevels ()
 
void ToggleTemporaryQualityLevels (bool bEnable, const FQualityLevels &QualityLevelsOverride)
 
bool IsTemporaryQualityLevelActive ()
 
int32 GetEffectsQualityDirect (bool bGameThread)
 
void LoadState (const FString &IniName)
 
void LoadState (const FString &IniName, const TCHAR *Section)
 
void SaveState (const FString &IniName)
 
void SaveState (const FString &IniName, const TCHAR *Section)
 
void RecordQualityLevelsAnalytics (bool bAutoApplied)
 
FQualityLevels GetQualityLevelCounts ()
 
void LoadPlatformScalability (FString PlatformName)
 
FText GetQualityLevelText (int32 QualityLevel, int32 NumLevels)
 
 DECLARE_MULTICAST_DELEGATE_OneParam (FOnScalabilitySettingsChanged, const Scalability::FQualityLevels &)
 

Variables

const int32 DefaultQualityLevel = 3
 
ENGINE_API FOnScalabilitySettingsChanged OnScalabilitySettingsChanged
 
constexpr float MinResolutionScale = 0.0f
 
constexpr float MaxResolutionScale = 100.0f
 

Enumeration Type Documentation

◆ EQualityLevelBehavior

Enumerator
EAbsolute 
ERelativeToMax 

Function Documentation

◆ BenchmarkQualityLevels()

ENGINE_API FQualityLevels Scalability::BenchmarkQualityLevels ( uint32  WorkScale = 10,
float  CPUMultiplier = 1.0f,
float  GPUMultiplier = 1.0f 
)

Run synthbenchmark and configure scalability based on results

◆ ComputeOptionFromPerfIndex()

int32 Scalability::ComputeOptionFromPerfIndex ( const FString &  GroupName,
float  CPUPerfIndex,
float  GPUPerfIndex 
)

◆ ComputeQualityLevelsFromPerfIndex()

ENGINE_API FQualityLevels Scalability::ComputeQualityLevelsFromPerfIndex ( float  CPUPerfIndex,
float  GPUPerfIndex 
)

Compute scalability quality levels from existing CPU and GPU perf indices

◆ DECLARE_MULTICAST_DELEGATE_OneParam()

Scalability::DECLARE_MULTICAST_DELEGATE_OneParam ( FOnScalabilitySettingsChanged  ,
const Scalability::FQualityLevels  
)

◆ GetEffectsQualityDirect()

ENGINE_API int32 Scalability::GetEffectsQualityDirect ( bool  bGameThread)

Gets the effects quality directly for the passed thread.

Parameters
bGameThreadIf true, the game thread value for the CVar is returned, otherwise the render thread value is returned. Useful when accessing the CVar from a game task.

◆ GetQualityLevelCounts()

ENGINE_API FQualityLevels Scalability::GetQualityLevelCounts ( )

Returns the number of steps for each quality level

◆ GetQualityLevels()

ENGINE_API FQualityLevels Scalability::GetQualityLevels ( )

This is the only suggested way to get the current state - don't get CVars directly

◆ GetQualityLevelText()

ENGINE_API FText Scalability::GetQualityLevelText ( int32  QualityLevel,
int32  NumLevels 
)

◆ GetResolutionPresets()

ENGINE_API TArray< FResolutionPreset > Scalability::GetResolutionPresets ( )

◆ GetResolutionQualityFromGPUPerfIndex()

ENGINE_API float Scalability::GetResolutionQualityFromGPUPerfIndex ( float  GPUPerfIndex)

◆ GetResolutionScreenPercentage()

ENGINE_API float Scalability::GetResolutionScreenPercentage ( )

◆ GetScalabilityNameFromQualityLevel()

ENGINE_API FText Scalability::GetScalabilityNameFromQualityLevel ( int32  QualityLevel)

Returns a human readable name for a scalability quality level

◆ GetScalabilitySectionString()

ENGINE_API FString Scalability::GetScalabilitySectionString ( const TCHAR InGroupName,
int32  InQualityLevel,
int32  InNumLevels 
)

◆ InitScalabilitySystem()

ENGINE_API void Scalability::InitScalabilitySystem ( )

◆ IsTemporaryQualityLevelActive()

ENGINE_API bool Scalability::IsTemporaryQualityLevelActive ( )

Are active scalability settings a temporary override.

◆ LoadPlatformScalability()

void Scalability::LoadPlatformScalability ( FString  PlatformName)

◆ LoadState() [1/2]

ENGINE_API void Scalability::LoadState ( const FString &  IniName)
Parameters
IniNamee.g. GEditorPerProjectIni or GGameUserSettingsIni

◆ LoadState() [2/2]

ENGINE_API void Scalability::LoadState ( const FString &  IniName,
const TCHAR Section 
)
Parameters
IniNamee.g. GEditorPerProjectIni or GGameUserSettingsIni
Sectionthe section to load from

◆ OnChangeAntiAliasingQuality()

void Scalability::OnChangeAntiAliasingQuality ( IConsoleVariable Var)

◆ OnChangeEffectsQuality()

void Scalability::OnChangeEffectsQuality ( IConsoleVariable Var)

◆ OnChangeFoliageQuality()

void Scalability::OnChangeFoliageQuality ( IConsoleVariable Var)

◆ OnChangeGlobalIlluminationQuality()

void Scalability::OnChangeGlobalIlluminationQuality ( IConsoleVariable Var)

◆ OnChangeLandscapeQuality()

void Scalability::OnChangeLandscapeQuality ( IConsoleVariable Var)

◆ OnChangePostProcessQuality()

void Scalability::OnChangePostProcessQuality ( IConsoleVariable Var)

◆ OnChangeReflectionQuality()

void Scalability::OnChangeReflectionQuality ( IConsoleVariable Var)

◆ OnChangeResolutionQuality()

void Scalability::OnChangeResolutionQuality ( IConsoleVariable Var)

◆ OnChangeShadingQuality()

void Scalability::OnChangeShadingQuality ( IConsoleVariable Var)

◆ OnChangeShadowQuality()

void Scalability::OnChangeShadowQuality ( IConsoleVariable Var)

◆ OnChangeTextureQuality()

void Scalability::OnChangeTextureQuality ( IConsoleVariable Var)

◆ OnChangeViewDistanceQuality()

void Scalability::OnChangeViewDistanceQuality ( IConsoleVariable Var)

◆ ProcessCommand()

ENGINE_API void Scalability::ProcessCommand ( const TCHAR Cmd,
FOutputDevice Ar 
)

Process a console command line

◆ RecordQualityLevelsAnalytics()

ENGINE_API void Scalability::RecordQualityLevelsAnalytics ( bool  bAutoApplied)

Sends an analytic event with all quality level data

Parameters
bAutoAppliedWhether or not the quality levels were auto-applied (true) or applied by the user (false).

◆ SaveState() [1/2]

ENGINE_API void Scalability::SaveState ( const FString &  IniName)
Parameters
IniNamee.g. GEditorPerProjectIni or GGameUserSettingsIni

◆ SaveState() [2/2]

ENGINE_API void Scalability::SaveState ( const FString &  IniName,
const TCHAR Section 
)
Parameters
IniNamee.g. GEditorPerProjectIni or GGameUserSettingsIni
Sectionthe section to save into

◆ SetQualityLevelCVar()

template<typename T >
void Scalability::SetQualityLevelCVar ( TAutoConsoleVariable< T > &  CVarToEdit,
const T  DesiredValue,
const T  OverrideValue,
bool  bForce 
)

◆ SetQualityLevels()

ENGINE_API void Scalability::SetQualityLevels ( const FQualityLevels QualityLevels,
bool  bForce = false 
)

This is the only suggested way to set the current state - don't set CVars directly

◆ ToggleTemporaryQualityLevels()

ENGINE_API void Scalability::ToggleTemporaryQualityLevels ( bool  bEnable,
const FQualityLevels QualityLevelsOverride = FQualityLevels() 
)

Applies quality levels for temporary status which will NOT be saved to user settings e.g. mobile device low-power mode. Originally active settings are backed-up or restored on toggle.

Variable Documentation

◆ DefaultQualityLevel

const int32 Scalability::DefaultQualityLevel = 3
inline

◆ MaxResolutionScale

constexpr float Scalability::MaxResolutionScale = 100.0f
inlineconstexpr

Maximum single axis scale for render resolution

◆ MinResolutionScale

constexpr float Scalability::MinResolutionScale = 0.0f
inlineconstexpr

Minimum single axis scale for render resolution

◆ OnScalabilitySettingsChanged

Scalability::FOnScalabilitySettingsChanged Scalability::OnScalabilitySettingsChanged
extern