Lyra.DeviceProfile.Mobile.OverallQualityLimits
Lyra.DeviceProfile.Mobile.OverallQualityLimits
#Overview
name: Lyra.DeviceProfile.Mobile.OverallQualityLimits
The value of this variable can be defined or overridden in .ini config files. 13
.ini config files referencing this setting variable.
This variable is created as a Console Variable (cvar).
- type:
Var
- help:
List of limits on resolution quality of the form \
It is referenced in 3
C++ source files.
#Summary
#Usage in the C++ source code
The purpose of Lyra.DeviceProfile.Mobile.OverallQualityLimits is to set limits on the overall quality settings for mobile devices in the Lyra game project. This variable is part of the performance optimization system for mobile platforms.
This setting variable is primarily used in the LyraGame module, specifically within the LyraSettingsLocal component. It’s part of the game’s settings and device profile management system.
The value of this variable is set through a console variable (CVar) system. It’s defined as a string that represents a list of FPS thresholds and their corresponding maximum quality settings.
This variable interacts closely with CVarMobileQualityLimits, which is the actual TAutoConsoleVariable that holds the value. They essentially represent the same setting.
Developers must be aware that this variable affects the overall quality settings on mobile devices based on the current frame rate. The format of the string is crucial: “FPS:MaxQuality,FPS2:MaxQuality2,…”. Each pair represents a frame rate threshold and the maximum quality setting allowed at or above that frame rate.
Best practices when using this variable include:
- Carefully balancing performance and visual quality for different device capabilities.
- Testing thoroughly on various mobile devices to ensure the settings are appropriate.
- Considering the impact on battery life and device heat generation when setting these limits.
- Regularly updating these settings as mobile hardware capabilities evolve.
Regarding the associated variable CVarMobileQualityLimits:
The purpose of CVarMobileQualityLimits is to store and provide access to the overall quality limits for mobile devices in the Lyra game project.
This variable is used in the same LyraGame module and LyraSettingsLocal component as the main variable.
The value of CVarMobileQualityLimits is set through the console variable system, allowing for runtime configuration.
It interacts directly with the Lyra.DeviceProfile.Mobile.OverallQualityLimits setting, serving as the actual storage and access point for the value.
Developers should be aware that modifying CVarMobileQualityLimits will directly affect the behavior controlled by Lyra.DeviceProfile.Mobile.OverallQualityLimits.
Best practices for CVarMobileQualityLimits include:
- Using the proper string format when setting values.
- Considering performance implications when modifying this variable at runtime.
- Documenting any changes made to this variable for team communication and future reference.
- Utilizing this variable in conjunction with other mobile-specific settings for a comprehensive mobile optimization strategy.
#Setting Variables
#References In INI files
Location: <Workspace>/Projects/Lyra/Config/DefaultDeviceProfiles.ini:118, section: [IOS_Mid DeviceProfile]
- INI Section:
IOS_Mid DeviceProfile
- Raw value:
60:1
- Is Array:
False
Location: <Workspace>/Projects/Lyra/Config/DefaultDeviceProfiles.ini:138, section: [IOS_High DeviceProfile]
- INI Section:
IOS_High DeviceProfile
- Raw value:
60:1
- Is Array:
False
Location: <Workspace>/Projects/Lyra/Config/DefaultDeviceProfiles.ini:156, section: [IOS_Epic DeviceProfile]
- INI Section:
IOS_Epic DeviceProfile
- Raw value:
60:2
- Is Array:
False
Location: <Workspace>/Projects/Lyra/Config/DefaultDeviceProfiles.ini:238, section: [iPhone8 DeviceProfile]
- INI Section:
iPhone8 DeviceProfile
- Raw value:
60:0
- Is Array:
False
Location: <Workspace>/Projects/Lyra/Config/DefaultDeviceProfiles.ini:243, section: [iPhone8Plus DeviceProfile]
- INI Section:
iPhone8Plus DeviceProfile
- Raw value:
60:1
- Is Array:
False
Location: <Workspace>/Projects/Lyra/Config/DefaultDeviceProfiles.ini:287, section: [iPadPro11 DeviceProfile]
- INI Section:
iPadPro11 DeviceProfile
- Raw value:
120:1
- Is Array:
False
Location: <Workspace>/Projects/Lyra/Config/DefaultDeviceProfiles.ini:295, section: [iPadPro2_11 DeviceProfile]
- INI Section:
iPadPro2_11 DeviceProfile
- Raw value:
120:1
- Is Array:
False
Location: <Workspace>/Projects/Lyra/Config/DefaultDeviceProfiles.ini:303, section: [iPadPro3_11 DeviceProfile]
- INI Section:
iPadPro3_11 DeviceProfile
- Raw value:
120:1
- Is Array:
False
Location: <Workspace>/Projects/Lyra/Config/DefaultDeviceProfiles.ini:311, section: [iPadPro3_129 DeviceProfile]
- INI Section:
iPadPro3_129 DeviceProfile
- Raw value:
120:1
- Is Array:
False
Location: <Workspace>/Projects/Lyra/Config/DefaultDeviceProfiles.ini:319, section: [iPadPro4_129 DeviceProfile]
- INI Section:
iPadPro4_129 DeviceProfile
- Raw value:
120:1
- Is Array:
False
Location: <Workspace>/Projects/Lyra/Config/DefaultDeviceProfiles.ini:531, section: [Android_Mid DeviceProfile]
- INI Section:
Android_Mid DeviceProfile
- Raw value:
60:1
- Is Array:
False
Location: <Workspace>/Projects/Lyra/Config/DefaultDeviceProfiles.ini:551, section: [Android_High DeviceProfile]
- INI Section:
Android_High DeviceProfile
- Raw value:
60:1
- Is Array:
False
Location: <Workspace>/Projects/Lyra/Config/DefaultDeviceProfiles.ini:568, section: [Android_Epic DeviceProfile]
- INI Section:
Android_Epic DeviceProfile
- Raw value:
60:2
- Is Array:
False
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Projects/Lyra/Source/LyraGame/Settings/LyraSettingsLocal.cpp:83
Scope: file
Source code excerpt:
static TAutoConsoleVariable<FString> CVarMobileQualityLimits(
TEXT("Lyra.DeviceProfile.Mobile.OverallQualityLimits"),
TEXT(""),
TEXT("List of limits on resolution quality of the form \"FPS:MaxQuality,FPS2:MaxQuality2,...\", kicking in when FPS is at or above the threshold"),
ECVF_Default | ECVF_Preview);
static TAutoConsoleVariable<FString> CVarMobileResolutionQualityLimits(
TEXT("Lyra.DeviceProfile.Mobile.ResolutionQualityLimits"),
#Associated Variable and Callsites
This variable is associated with another variable named CVarMobileQualityLimits
. They share the same value. See the following C++ source code.
#Loc: <Workspace>/Projects/Lyra/Source/LyraGame/Settings/LyraSettingsLocal.cpp:82
Scope: file
Source code excerpt:
//////////////////////////////////////////////////////////////////////
static TAutoConsoleVariable<FString> CVarMobileQualityLimits(
TEXT("Lyra.DeviceProfile.Mobile.OverallQualityLimits"),
TEXT(""),
TEXT("List of limits on resolution quality of the form \"FPS:MaxQuality,FPS2:MaxQuality2,...\", kicking in when FPS is at or above the threshold"),
ECVF_Default | ECVF_Preview);
static TAutoConsoleVariable<FString> CVarMobileResolutionQualityLimits(
#Loc: <Workspace>/Projects/Lyra/Source/LyraGame/Settings/LyraSettingsLocal.cpp:280
Scope (from outer to inner):
file
namespace LyraSettingsHelpers
Source code excerpt:
}
TMobileQualityWrapper<int32> OverallQualityLimits(-1, CVarMobileQualityLimits);
TMobileQualityWrapper<float> ResolutionQualityLimits(100.0f, CVarMobileResolutionQualityLimits);
TMobileQualityWrapper<float> ResolutionQualityRecommendations(75.0f, CVarMobileResolutionQualityRecommendation);
int32 GetApplicableOverallQualityLimit(int32 FrameRate)
{
return OverallQualityLimits.Query(FrameRate);