My CPU was only showing 60% and i had about 50fps, but it was like driving in slow motion and everyone was vibrating/jumping around.
Hi, the CPU "showing" means overall load in Taskmanager? That sadly doesn't tell you anything apart from that not ALL cores where at full load for a full second.
CPU loads are very complex. A general rule is:
If your graphics card load isn't at 90-100%, your CPU is the bottleneck (or a fps limiter or vsync, but you're saying "only 50 fps", so it's not fps limit or vsync).
This CPU complexity has to do with how applications are programmed. For graphics stuff, you just shove everything the CPU has prepared into the graphics card and it will spread everything across the whole card.
That's not possible for CPU stuff. If you code basic things, they will always be all on just one core.
AC can use 2 cores to 100% and then has a lot of very little tasks for the other cores.
However your CPU will probably run at above 3 GHz, which already means 3.000.000.000 CPU cycles per second, per core.
Windows will run these 2 "big threads" (in example) for 500.000 cycles on one core, while the next core will read the cache and "prepare". Then the next core takes over for its 500.000 cycles.
In the end, TaskManager will average the done work for one second and you'll see some loads on all cores.
But if you'd freeze everything at one single moment in time, you would see only 2 cores at 100%, the rest of the CPU doing nothing.
Long story short, you need to check these apps while on track:
I'm not sure which of them are "developer" (dev) apps, but you'll see the render times for the single frames.
The CSP render stats app is far superior, but you only get it when activating the GUI extension in CSP.
On this screenshot, you'll see a graphics card limit. The GPU took 9.22ms for the frame, the CPU only 5.61ms.
What's important is that the "MAIN_T" isn't close to 100% and "PHY_LATE" stays below 100 per lap.
If that's not the case, you can see the CPU times for every single thing in AC in the CSP app and hopefully reduce whatever is having big impacts.
And here's how a "still good" CPU limit looks like. PHY_LATE slightly ticking up, but still okay. MAIN_T pretty high, but below 95%.
GPU load is only at 49% (the 57% is the fan speed).
CPU load is at 30%.
However the CPU frame time (blue) is at 6.01ms
GPU frame time (red) is at 4.28ms
Since I disabled all limiters, vsync etc., only a better CPU would increase my fps.
OR I could:
- disable smoke (0.46ms)
- reduce shadows settings (0.25ms)
- reduce mirror settings (0.23ms)
- close this render stats app, lol (0.13ms)
- disable the app "pitboard" (0.18ms)
Adding up to => 1.25ms
Then there's the main pass, which can only be reduced by lowering the "World Details" in the normal AC settings. That would probably give me another 0.3ms
=> 1.55ms to be saved.
6.01ms - 1.55ms = 4.46ms
and 1000ms / 4.46ms = 224.2 fps
So I would go from 160 fps to 224.2 fps.
Scaled down to your 50 fps, that would mean getting 70 fps!