CPU or GPU: which is the bottleneck?

Dogtor Flashbank
2 min readApr 12, 2019

Imagine you’d like to upgrade your computer to make CS GO run faster, that is, with more frames per second (FPS). But mommy only allows you to buy a new processor or a new graphics card, not both. Which one should you choose?

They say Counter Strike is a CPU-bound game, meaning that having a good CPU is more important than having a good GPU. However, this is only a general rule of thumb. What we need is to discover which one is the bottleneck in your situation.

Another rule of thumb says to change screen resolution and see how FPS change. The resolution mainly affects the graphics card, so if you see large changes in frames per second, this might mean that the GPU limits your frame rate. If you don’t, then it’s the CPU. For me, FPS barely change from resolution to resolution.

You could also look at CPU and GPU usage charts in an application like System Explorer. When checking processor usage, it is important to look at each core separately. The reason is that some cores might sit idle. If you had two cores, one at 100% and the other one at 0%, the main CPU graph would show 50% usage. Instead, look at the busiest core and compare with a GPU usage plot. Which one is closer to 100%?

By the way, neither my busiest CPU thread nor GPU shows 100% during gaming, and I still don’t get infinite FPS. Huh.

Finally, the most scientific way, one used by the actual game and map developers. In the console, type cl_showfps 5. This will show extended stats. The question is, what do they mean?

The best answer I found is in this Reddit thread. “The best” doesn’t mean good, though. It gives some hints, but only for numbers in one horizontal line, whereas there are four lines in different colors: Current, Main, Render and GPU. Black, red and blue surely mean something.

As far as I understand, Current gets refreshed most often, and the other three more rarely. Among them, the one in red is the bottleneck.

I think Main and Render both refer to the CPU: Main to game logic, Render to drawing things on the screen. To test this, go into a deathmatch with bots. On my computer, the Main will be in red most of the time. The explanation would be that the CPU is thinking for all the bots concurrently and this most demanding task limits frame rate.

Now go to the same map, alone. The FPS should be much higher, and Main will be no longer always in red. For me, GPU flashes from time to time, Render and Main much more. This would mean that CPU is the bottleneck.

I don’t know why in each line there are numbers for Main and Render, but not for GPU. Maybe RdrWt (Render Worker Thread) represents GPU? The guy in the Reddit thread says that Render refers to GPU, but if it does, then why is there a separate line for GPU? If you happen to understand this, let me know.

--

--