Sunday, September 4, 2011

Determining if a game is CPU- or GPU-limited

Question

What is a reliable, but not too time-consuming way to determine if a certain game is limited by the graphics card or by the processor speed?

I have some preconceptions about whether I'm mostly GPU or CPU limited, but I'd like too verify if I'm right about that. I have some ideas how I would go around and test that but performing accurate benchmarks is notoriously tricky and I don't have much experience with it.

So I'm wondering what would be an easy way to determine the bottleneck, having only one computer with a certain configuration available? What tools would I use for that purpose?

It would also be interesting to determine if the amount of VRAM on my graphics card is a limiting factor.

Answer

Two rules of thumb I used to use:

If increasing the resolution brought about a large drop in the frame rate, it could indicate that the game was GPU-bound, as the increased resolution makes the video card work much harder and, as a result, takes longer to get each frame out the door.

On the other hand, if increasing the resolution brought about only a negligible decrease in frame rate (or no decrease at all), then it was an indicator that the game was CPU-bound, as the additional video complexity was easily handled by spare video card processing capacity whereas the main game processing logic already pegged the CPU. In this situation, the game engine is too busy to be able give the video subsystem enough work.

However, I don't think games nowadays are so simple that the performance is easily limited like that. For many years now, GPUs have gotten more complex and developers are finding ways to offload more work to them, so there's a lot of work that could be done on either side... this is why I don't use these rules of thumb very much anymore - they just don't really apply. The assumption was that raising the resolution did not cause additional work on the CPU.

If you followed those video card benchmarks from Tom's Hardware Guide religiously in those early 2000's years, you could see this sometimes - running e.g. Quake 3 using a "modern" video card and you'd get so many bar charts that just flatlined.

If you can measure the frame rate of your game, give this a try and see what happens.

No comments:

Post a Comment