Game Running Slow: CPU or GPU Bound
How to tell what is limiting the frame rate
Also known as: Game low FPS · CPU bound vs GPU bound · Why is my game slow · Unreal stat unit · Unity profiler slow · Bottleneck game
Quick answer
To find out why a game runs slowly, lower the render resolution and watch the frame rate: if it rises a lot, the game is GPU bound, and if it barely changes, it is CPU bound. A GPU bound game needs cheaper shading, fewer pixels, less overdraw or lighter lighting. A CPU bound game needs fewer draw calls, simpler scripts, fewer active objects and less animation. Then confirm with a profiler before changing anything.
How to fix it
In Unreal Engine, stat unit shows the game, draw and GPU times, and the highest one is the limit. In Unity, use the Profiler for CPU and the Frame Debugger or an external tool such as RenderDoc for GPU. Fix the largest cost first and measure again. Artists mostly influence the GPU side through materials, overdraw and texture size, and the CPU side through draw calls, object counts and LODs.