Hello everyone. I started a pretty big project in Unreal Engine 5.1. This is a VR project. When I start the project in preview mode, I experience a significant drop in FPS. Is there a way I can make this FPS smoother?
Type “stat unit” in the console.
See which time is the higher - game or gpu.
Whichever it is then type “stat game” or “stat gpu”
You should do after launching standalone if game is the issue as the editor eats the game thread.
Those stat screens will give you an idea where your scene is heavy (shadows, etc.)
Next step would be to run a trace and see what’s happening there.
VR is very heavy, so you also will want to dial down your scalability settings depending on your pc specs.
The scene looks quite straight-forward though so maybe something in there is causing an issue.
You can start by lowering the scalability settings:
You can also lower the screen percentage to render in lower resolution: Screen Percentage Unreal 5 - #3 by Pawpatting
Disable Lumen, it’s enabled by default in UE5 projects for some reason: Lumen Global Illumination and Reflections in Unreal Engine | Unreal Engine 5.0 Documentation
Disable Nanite.
In Engine-Rendering-Default settings disable: Bloom, Ambient Occlusion, Ambient Occlusion Static Fraction, Auto Exposure, Motion Blur, Lens Flair, Set Anti-Aliasing Method to None, MSAA Sample Count: No MSAA.
Engine-Rendering-Optimizations settings disable: Render Unbuilt Preview Shadows in game.
If it’s still not enough, you can switch from the deferred to forward renderer: Forward Shading Renderer | Unreal Engine Documentation, which is lighter and misses some rendering features but is faster: sometimes GPU usage can drop down by 3-5 times depending on what’s happening in your level.
These should reduce GPU usage by around 5-10 times.
Then if it’s still not enough(but it should be. If you’re getting 45 FPS by default, you should be able to get to 150+ FPS with these tweaks mentioned), it’s also a good idea to profile your game and make sure that blueprints don’t kill performance, and you’re not doing something like GetActorsOfClass on every tick in blueprints, and also port gameplay code to C++, especially the code that runs on every tick. Also, minimize the usage of blueprints in general. For example, when a button is pressed, fine, you implement the UI itself in a blueprint, but only the UI: the button click handler should be in C++ and not in blueprints, since it’s not UI anymore.
That would be a start. And then: Unreal engine improving performance - Google Search
I’m sure there are many different other techniques you can apply to improve performance.
Any blueprint optimization or c++ port should only be done if you are cpu bound. Unless you are cpu bound this will have no impact. And frankly according to all the deep dive studies out there, it’s actually harder than people think to choke your game with BP code, especially if you are using BP nativisation.
Considering the project sees a large frame drop when going into VR that would lean heavily towards GPU bound, since the CPU code (BP etc.) would be unlikely to scale with resolution.
By default the Deferred Renderer w. TSR enabled on high resolution HMD’s will force reprojection in almost any project. Use the console command profilegpu
to see what your GPU is doing.
I get this warning when I start the simulation. Could it be because of this? What do I need to do to solve this problem?