Customizing Scalability Settings

Hello.

I’m looking at the Customizing Scalability Settings over at the “Scalability Reference” page here:

It says at the bottom section that you can set up a custom scalability ini file but I’m having trouble trying to figure out how call the other scalability groups such as sg.postprocessquality for instance.

The example given is straight forward but the commands seem to be different from the rest of the scalability groups.
Does anyone know how to properly set them?

I have created the defaultscalability.ini andI tried calling post process like this:

[sg.PostProcessQuality 1]
r.MotionBlurQuality=3
r.BlurGBuffer=0
r.AmbientOcclusionLevels=1
r.AmbientOcclusionRadiusScale=1.7
r.DepthOfFieldQuality=1
r.RenderTargetPoolMin=350
r.LensFlareQuality=0
r.SceneColorFringeQuality=0
r.EyeAdaptationQuality=2
r.BloomQuality=4
r.FastBlurThreshold=2
r.Upscale.Quality=2
r.Tonemapper.GrainQuantization=1

Look for the BaseScalability.ini file and check out its Scalability Group sections. They’re named, for example: [AntiAliasingQuality@0] where the number after the @ denotes the quality level. Cine denotes a cinematic level above 3 which is not recommended for real-time use.

I am trying to do this in UE 5.1 but it seems to just pretend my overrides don’t exist.

I have a file called DefaultScalability.ini in my project’s Config folder, with the following info:

[AntiAliasingQuality@0]
r.AntiAliasingMethod=0

[AntiAliasingQuality@1]
r.AntiAliasingMethod=2
r.TemporalAA.Quality=1

[AntiAliasingQuality@2]
r.AntiAliasingMethod=2
r.TemporalAA.Quality=2
r.TSR.History.R11G11B10=1
r.TSR.History.ScreenPercentage=100
r.TSR.History.UpdateQuality=1
r.TSR.ShadingRejection.SpatialFilter=1
r.TSR.ShadingRejection.Flickering=0
r.TSR.Velocity.Extrapolation=0
r.TSR.Velocity.HoleFill=1
r.TSR.RejectionAntiAliasingQuality=1

[AntiAliasingQuality@3]
r.AntiAliasingMethod=4
r.TSR.History.R11G11B10=1
r.TSR.History.ScreenPercentage=100
r.TSR.History.UpdateQuality=2
r.TSR.ShadingRejection.SpatialFilter=1
r.TSR.ShadingRejection.Flickering=0
r.TSR.Velocity.Extrapolation=0
r.TSR.Velocity.HoleFill=1
r.TSR.RejectionAntiAliasingQuality=1

But whenever I change the current Scalability, it seems to still use the base Scalability settings as nothing changes on screen and I see this in the Output Log:

[2023.02.19-12.34.32:719][648]LogConfig: Applying CVar settings from Section [AntiAliasingQuality@1] File [Scalability]
[2023.02.19-12.34.32:719][648]LogConfig: Set CVar [[r.FXAA.Quality:1]]
[2023.02.19-12.34.32:719][648]LogConfig: Set CVar [[r.TemporalAA.Quality:1]]
[2023.02.19-12.34.32:720][648]LogConfig: Set CVar [[r.TSR.History.UpdateQuality:1]]
[2023.02.19-12.34.32:720][648]LogConfig: Set CVar [[r.TSR.ShadingRejection.SpatialFilter:1]]
[2023.02.19-12.34.32:720][648]LogConfig: CVar [[r.TSR.Velocity.HoleFill:1]] deferred - dummy variable created
[2023.02.19-12.34.32:720][648]LogConfig: Set CVar [[r.TSR.RejectionAntiAliasingQuality:1]]

I decided to look at how Lyra does it and discovered that you need to do - for every base settings. For example:

[AntiAliasingQuality@1]
-r.FXAA.Quality=1
-r.TemporalAA.Quality=1
-r.TSR.History.R11G11B10=1
-r.TSR.History.ScreenPercentage=100
-r.TSR.History.UpdateQuality=1
-r.TSR.ShadingRejection.SpatialFilter=1
-r.TSR.ShadingRejection.Flickering=0
-r.TSR.Velocity.Extrapolation=0
-r.TSR.Velocity.HoleFill=1
-r.TSR.RejectionAntiAliasingQuality=1

r.TemporalAA.Quality=1

I also found out setting r.AntiAliasingMethod does not work in Scalability, which I think is kinda limiting as I would like to use the cheaper TAA for lower settings and TSR for higher settings. I settled for overriding the UGameUserSettings::ApplySettings to set the AA method based on AA Scalability.

1 Like