Hi,
I’ve decided to ask here out of desperation. After some time passed on implementing new stuff in my project, it was time to do some optimization and so I started profiling in Standalone Mode with Unreal Insights (as usual). My scene is pretty empty, no fancy mesh, no fancy materials, no fancy heavy computing, no fancy anything, so when I’m not doing anything “in game” the fps should stay high and steady (apart from the Garbage Collection spikes which are normal), BUT I started noticing weird frame spikes coming out of seemingly nowhere (attached pictures are related and are good exemples) at random intervals, and sometimes even going full crazy with non stop spikes during new runtime slices tests!
After a lot of digging, testing and help from GPT, we ruled out the new systems I implemented as being the cause of this. I did a lot of profiling and :
- the Primitives were not to blame (picture from a frame spike attached).
- I disabled a lot of unused rendering stuff in Project Settings that I was not using, and it did not help in any way.
- I tried “r.HZBOcclusion 1” and it SEEMS the frame spikes are a little bit less spiky (but I cannot tell for sure).
- But most importantly, the only Project Setting that clearly affects the frames is the Occlusion Culling. Because disabling it transforms the random, very sparse and spiky frames, into less tall but very frequent spiky frames, and that is why the robot thinks that the main problem comes from the underlying GPU pipeline work (or whatever it called it). It thinks that activating Occlusion Culling is just somewhat hiding the underlying render problem, and that sometimes (from what I understand) the OC cannot regulate all the stuff dysfunctionning and just “leaks” some frames. The GPT also thinks that there is probably some desync involved between the GPU and some querries from other systems.
Now listen, if you’re somewhat versed in computers (which I’m definitely not), you’re probably loling at the vocabulary I used, but I’m out of options here. I have no clue how that works and why the project sundely does this out of the blue. I have no idea how to fix that.
If someone with Rendering/GPU knowledge, or an EPIC employee, was kind enough to lay a hand, I would be immensely greatful.
Some more informations :
- UE version : 5.6.1
- GPU : NVIDIA GeForce RTX4060 8Go
I forgot to specify that the pictures I attached were taken with Occlusion Culling on, and that my GPU driver is up to date.
And if somebody wants any more information, please ask, I will give you everything you want.
Update :
- I did more tests : 3 tests with r.HZBOcclusion=0 and 3 tests with r.HZBOcclusion=1 and I didn’t see any notable difference. The only patern I can recognize is that some render frames execute “RHITreadLockWait” instead of the usual and repeating “OcclusionCull”.
- I did 2 more tests with Occlusion Cull off to see if there was an identifiable patern :
- The frames are way more chaotic and unstable than with Occlusion Cull on.
- On Unreal Insights the graph shows that the ThreadLock is way more spread accross frames than with Occlusion Cull on.
- I did 2 more tests by changing Anti-Aliasing to TAA, and then Anti-Aliasing to none, and it didn’t change anything.
- I tested my other 2 unrelated Unreal projects, and it’s VERY weird because they suffer the same frame/render problem. So either I never noticed that the problem was happening since the very beginning (which would be quite insane since I’m always checking the performance in Unreal Insights after implementing new stuff), or something changed recently.
- I tested with a TOTALLY BLANK project in UE 5.7.4 (the latest version) and it does exactly the same thing.
- I test with a Packaged Build, and it suffers from the same problem.
Bump.
I’m still non-stop investigating. It seems like it’s PC specific because I did some tests in the same conditions on my laptop (RTX 4050) and the hitches seem to not be present there (even if some other weirdness seems to be present).
Me and the robot managed to track the problem with NSight, but we didn’t found the true culprit yet. I’ll try to reformatt my Windows SSD next to see if it resolves the problem.
I have noticed a bunch of Unreal games with Lumen enabled have micro-stutter.
That’s when your FPS is reasonble but, there are incremental lag frames, so even at 60+ FPS the game still looks visually jerky.
I noticed Arc Raiders does not use Lumen and its one of the smoothest running games recently with really nice visuals.
I don’t have lumen enabled.
Update to the previous post :
Nope, reformatting Windows, restarting fresh while upgrading to Windows 11, and reinstalling Unreal freshly didn’t change anything, the hitches are still present. I’m still investigating non stop with the help of GPT.
If someone cares, I’m attaching the (mostly) up to date summary.txt of what I already tested and the most probable leads.
UE5_render_hitch_summary_UPDATED4.txt (18.3 KB)
The problem seems to have resolved itself. I didn’t change anything apart from almost not using the PC for two days since I had to go to work, and when I came back the problem seemed to have gone… I’ll mark the forum thread as resolved, but I’ll keep the frames under close watch for the near future to be sure it’s truly gone.