I noticed when moving from UE5.0.3 to UE5.1 that the CPU usage on a single thread gets pinned at or near 100%. When running UE5.0.3 all cores share the load pretty equally.
To test this I created two default projects, one in 5.0 and one in 5.1. Each project is loaded to a blank level so there is absolutely nothing in it. The FPS is capped at 120 (default). 5.1 pins one thread at or near 100% and 5.0 seems to share the load somewhat equally. If there is more in the project then the single thread definitely gets pinned at 100%.
If the FPS is capped to 60 (t.maxfps 60) then the thread usage drops to about 50%. This mostly solves the issue but I find it strange that the thread would be pinned to begin with.
The thread being near 100% usage seems to only be happening in the editor. If I build the project and launch it separately then the CPU usage seems to be spread among the cores pretty evenly.
Has anyone else noticed this happening and is this “as intended?”. I’m hesitant to upgrade my project to 5.1 if this is a bug/issue but there are some shiny new features I’d love to use in 5.1.
As a side note I did check to ensure the processor affinity was set to use all cores.
Drivers have been reinstalled and Windows 11 is a fresh install as well.
Any insight would be much appreciated!
My System:
i7 8700K
nVidia 1080FE
16GB 3200 RAM
Windows 11
UE5.0.3 (Logical Processor 0 and 2 seem to share the load better)
I’m unsure if it’s related or not to be honest. There are certainly performance issues with my converted project as well though. When I converted a copy I did notice the landscape caused lag issues until I resampled it at a lower poly count. After the resample then the FPS went back to normal but a single logical core was pinned at 100%.
I’ve noticed the performance issue happen even on a brand new project though. It mainly happens when the GPU isn’t loaded at 100%. I compared a new project from 5.0 to a new project from 5.1. The screen shots above are from those projects. For some reason 5.1 seems to load down one logical core more than the others. I’m not exactly sure what changed, possibly something in the 5.1 interface that’s processing on a single thread? I’ve also noticed that having a BP, even an empty one and then starting your project in a new window, tanks the FPS as well. In 5.0 the FPS does take a hit but not nearly as badly.
Here is what it looks like on my converted project.
I did some more testing on the default 5.1 project as well. If you create a default project and make an empty level to ensure nothing is in it the logical core usage is high but if you add a single cube and highlight it then the CPU gets pinned like above.
If you cap the FPS to 60 the usage drops to roughly 50% and if you cap it to 300 and cause a GPU bottleneck (GPU @ 100%) then the core use is still at roughly 50% but still higher than other cores.
I did submit a bug report on this, I’m hopefully it’ll be addressed. For now I’m going to hold off on officially upgrading my project.
It’s great that you are able to reproduce it on a blank level. Unfortunately a lot of bugs get by simply by the fact that the devs cannot reproduce…so hopefully if you were able to submit the step-by-step that reliably produces the issue it will get addressed quickly
Same with 5.3, core 2 is being overwhelmed, while all other 23 cores are hardly working.
For a second it made me wonder if the engine was single threaded or something. I’m stuttering with over 100fps.
RHIT I believe actually was, before 5.4 which introduced render hardware interface thread parallelization (I haven’t actually migrated anything to 5.4 yet but it was on the public roadmap). You should check your stat unit for RHIT time and see if this is the case. If it is, moving to 5.4 might fix it.
For some reason, Unreal is working fine today, the RHIT is just 12. So luckily I won’t have to migrate engine versions.
I hope this good performance keeps up, I dread thinking of having to update the engine and subsequently have to fix god knows how many bugs and issues because of it.