I’ve encountered an inconsistency in how certain CVars apply via Android device profiles, and I’d like to better understand the underlying behavior.
I was testing HLOD transition behavior on Xiaomi Redmi 9 (Mali_G52) using the CVar:
+CVars=r.HLOD.DistanceOverride=“1000,10000”
I initially placed this line in the general profile:
`[Android_Low DeviceProfile]
DeviceType=Android
BaseProfileName=Android
+CVars=r.HLOD.DistanceOverride=“1000,10000”`But it had no effect — no observable difference in performance or HLOD transition behavior.
However, when I moved the same setting to the exact GPU-specific profile:
`<[Android_Mali_G52_Vulkan DeviceProfile]
DeviceType=Android
BaseProfileName=Android_Low
+CVars=r.HLOD.DistanceOverride=“1000,10000”`it worked immediately.
My core questions are:
Why did this CVar only apply when set in the most specific device profile?
Is there a system-level reason why certain CVars like r.HLOD.DistanceOverride
are ignored when set in a parent profile like Android_Low
Are there classes of CVars that bypass or delay inheritance?
Is this tied to how early the engine evaluates the value?
How can developers reliably distinguish between CVars that must be set in device-specific profiles vs those that inherit normally?
Are there recommended practices or tooling (logs, engine behavior, metadata) to help identify and manage this?