Console Variables and Commands
Certain features can be toggled at run-time in the game console or the editor output log / console. A lot of console variables exist to scale the render quality for a wide range of platforms (look at BaseScalability.ini, use the editor UI, the sg. console variables or the Scalability console command).
The most useful ones for profiling:
Console Variable | Description |
---|---|
r.SetRes | To change the screen/window resolution. |
r.VSync | To enabled/disable VSync (might depend on native fullscreen). |
r.ScreenPercentage | To reduce the internal render resolution, the image gets upsamples in another pass, see above. |
r.AllowOcclusionQueries | To disable occlusion (can make scenes slower). |
r.TiledDeferredShading | Allows to turn off the tile based deferred lighting technique (GPU particle lights do not have a fallback). |
r.TiledDeferredShading.MinimumCount | Adjust how many lights we need to activate the tile based deferred lighting technique (no visual difference but can be a performance difference). |
Pause | Stop the game or matinee (much more reliable profiling but disables updates/ticks). |
Slomo | Allows to slow down or accelerate time. |
r.VisualizeOccludedPrimitives | Displays the bounding boxes of occluded primitives. |
StartFPSChart StopFPSChart | See below. |
r.SeparateTranslucency | The feature fixes translucency with depth of field, can be disabled if not needed, has other implications (reading SceneColor). |
r.Tonemapper.GrainQuantization | To disable the noise we add in the tonemapper to avoid color banding because of 8bit quantization, minor quality improvement, not needed when we output in 10:10:10. |
r.SceneColorFormat | Allows to use a different scenecolor format (default is 64bit for best quality and to support screenspace subsurface scattering). |
FX.AllowGPUSorting | To disable particle sorting (pays off when used for a lot of particles). |
FX.FreezeParticleSimulation | To disable the particle updates. |
r.SSR.MaxRoughness | Adjust the max roughness of Screen Space Reflections, to override the postprocess settings, see Show Flag VisualizeSSR. |
Command Line Options
Certain features can be disabled on the command line e.g. UE4.exe -NoSound The most useful ones for profiling:
Commandline Option | Description |
---|---|
-NoSound | To disable the sound and music system. |
-NoTextureStreaming | To disable texture streaming (good to isolate where hitches are coming from). |
-NoVerifyGC | Otherwise expect massive hitching in Release builds at least every 30 seconds or so. |
-NoVSync | Gives faster rendering but can result in image tearing, especially important with high FPS. |
-Streaming | Useful with StartFPSChart/StopFPSChart to get the data from a non windows device to the cooking PC for further investigations (assuming we use cook on the fly). |
Compile Options
You should never profile or measure performance in Debug builds. For convenience, we suggest profiling and working on performance in Development build. The actual performance in Shipping is the real target but as it has fewer development features it should only be faster. Test acts almost like Shipping but has a few code features still enabled (e.g. console, stat unit).