More experiments done, still impossible to understand. I can not believe that the hardest Unreal Engine problem I ever had to solve is figuring out how to determine what resolution the game will run at in editor viewport, PIE and standalone game.
SO!:
[ScalabilitySettings]
; This is the screen percentage for the resolution quality, corresponding to 25% pixels, 50% pixels, 75% pixels, and 100% pixels
PerfIndexValues_ResolutionQuality="50 71 87 100 100"
These are SCALABILITY settings. They contain resolution multipliers for scalability presets 0 to 4. Epic and Cinematics are same 100% scale.
They CAN be used in PIE as long as the Screen Percentage slider is set by switching the Scalability Presets in the Scalability Groups panel:
In EDITOR VIEWPORT:
Scalability Resolution presets can NOT be used. Editor viewport will always ignore them regardless of what scalability level you have set.
In EDITOR PIE:
Scalability Resolution presets are used when switching the scalability levels manually in the Scalability Groups, where they will modify the Screen Percentage slider by loading the value from PerfIndexValues_ResolutionQuality.
In STANDALONE GAME:
They are always used. There is no way to use “Based on Display Resolution” setting in the Standalone Game.
Based on display resolution
This setting is available on two separate places:
Project Settings->Editor->Performance
Project Settings->Rendering->Default Screen Percentage
In EDITOR VIEWPORT:
Setting defined in Project Settings->Editor->Performance (Based on display resolution by default) is ALWAYS used. It is not possible for Editor Viewport to respect scalability resolution multipliers.
In In EDITOR PIE:
Setting defined in Project Settings->Rendering->Default Screen Percentage (Based on display resolution by default) is used in fresh new Unreal project as default. BUT it will only be used until the user touches the Scalability buttons in Scalability Groups panel at least once. As soon as those are touched, they will snap the Screen Percentage slider to the value defined in PerfIndexValues_ResolutionQuality.
In STANDALONE GAME:
There is no way for Standalone Game to use Based on display resolution. This means that despite the setting being defined in Project Settings->Rendering->Default Screen Percentage, this setting has NOTHING to do with the the state of the standalone/packaged game and is only relevant in the editor.
I know the two lists above are pretty much mirroring each other, but what this means in practice is that:
Scalability Level resolution presets can be used in:
Viewport: NO
PIE: YES
Standalone Game: YES
Scalability Level resolution presets are defined in and can be modified in:
BaseScalability.ini
Based on display resolution setting can be used in:
Viewport: YES
PIE: YES
Standalone Game: NO
Based on display resolution setting is defined and can be modified in:
I can not figure out where.
Key takeaways:
-
There is no setup that I know of which can ensure the game resolution is same across Editor Viewport, PIE and Standalone Game, which makes performance randomly jump around confusing me.
-
The only way to ensure consistent resolution is to set all Scalability Preset resolution multipliers to 100 and set both Screen Percentage settings to “Manual”, but this negates the benefit of having dynamic resolution downsampling based on scalability, which in turns gimps the TSR effectivity.
-
Default Screen Percentage Mode for Desktop renderer setting set to “Based on Display resolution” will mean:
A: In PIE, Based on Display resolution scaling (which is impossible to find definition of) will be used as long as Screen Percentage Scalability Groups slider is set to 0
B: In Standalone Game, PerfIndexValues_ResolutionQuality values from the ini file will be used.
This means this very same setting which is defined as non editor specific in Project Settings->Rendering is either:
A: Is editor specific
B: Is not editor specific but has different meaning/functionality in PIE vs Standalone Game
If someone understands it better than me then please help me. It’s driving me crazy that after weeks of research, I still can’t figure out how UE5 handles resolution… I just want to know what resolution my game runs at ![]()



