Depressing and seemingly unsolvable Render problem

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 :

  1. 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”.
  2. 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.
  1. I did 2 more tests by changing Anti-Aliasing to TAA, and then Anti-Aliasing to none, and it didn’t change anything.
  2. 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.
  3. I tested with a TOTALLY BLANK project in UE 5.7.4 (the latest version) and it does exactly the same thing.
  4. I test with a Packaged Build, and it suffers from the same problem.