Update Performance Debugging and Profiling authored by Konstantin Kühlem's avatar Konstantin Kühlem
......@@ -47,8 +47,16 @@ Additionally, Intel themselves published a very good profiling tutorial series f
The default settings for Unreal scenes are not optimized for performance, which becomes clear when running the Default Scene in VR and comparing it to e.g. Unreal's own VR Template. The difference for me was something around 8ms (Default) to 4ms (VR Template) frame timings. [There are a few simple adjustments to make to get better performance without many drawbacks](https://docs.unrealengine.com/en-US/Platforms/VR/DevelopVR/VRPerformance/index.html):
- Enable Instanced Stereo in your Project Settings
- Enable `Instanced Stereo` in your Project Settings.
- On Windows, use `DirectX 12` with `SM 6`.
- Consider enabling `Nanite` together with `Virtual Shadowmaps`. For unnecessary complex meshes, consider reudcing the geomerty, eiter with the LOD setings or (if enabled) under `Nanite` with `Keep Triangle Percent`.
- Disable any post processing effects you don't need in Project Settings or via an unbounded `PostProcessVolume`.
- Often, Lumen global illumination is not worth the performance loss. Also consider, whether you need lumen or screen space reflections.
- Try out different anti-aliasing methods, as the all have a trade-off between quality and performance.
- Use pre-build lighting if possible.
- If you cannot use it, check the `Lighting Complexity` (ALT+F7). Especially overlapping light sources cause performance loss.
- Using light channels might help performance but can cause major artifacts in VR.
- Check the `Shader Complexity` (ALT+F8).
- Often, Forward Shading is recommended. This is something that is very application specific and not a guaranteed performance gain, so try it out with above profilers and see if it gains you any milliseconds.
- [Scalability settings](https://docs.unrealengine.com/5.0/en-US/scalability-in-unreal-engine/): For some reason, Unreal gives a lot of scalability and performance options via .ini files that are not mentioned *anywhere* in the Project Settings. The simplest way to to achieve a way better performance is to just copy the `DefaultScalability.ini` from the Unreal VR Template into your project's config directory.
- General config settings: Additionally to the Scalability settings, Unreal published the settings used in the VR Showdown demo [here](https://docs.unrealengine.com/en-US/Platforms/VR/DevelopVR/ContentSetup/index.html), alongside some more performance tips. The page is fairly outdated tho, so take it with a grain of salt.
......
......