Explain in detail how the CPU and GPU each affect the frame rate?

twneal

Honorable
Dec 5, 2013
37
0
10,540
I am a little confused about how the CPU and the GPU work together.

My understanding is that the CPU does its work on a frame, then passes its work to the GPU. Immediately thereafter, the CPU begins the next frame while the GPU is working on the previous frame. In other words, the CPU and GPU can work on two different frames simultanously. Am I right so far?

(Arbitrary numbers incoming.)

Let's say the CPU takes 15ms to work on a frame. Let's also say we have a game on low resolution and detail, and on this setting it takes 10ms for the GPU to render the frame. Does this mean the CPU is effectively a bottleneck, since the frame will require at least 15ms (~67 FPS) to render regardless of how fast the GPU does its work?

Now let's say we have the game on high resolution and detail, and it takes the GPU 20ms to render a frame. Does this now mean that the GPU is a bottleneck, since changes in the on-screen image can only occur every 20ms (50 FPS)?

If so, this would mean there is always some form of bottleneck unless the CPU and GPU take the exact same amount of time to work on the frames.

However, it seems like modifying CPU-dependent features and modifying GPU-dependent features at any given time will both affect the frame rate. There does not seem to be a specific cut off point for either, as if neither is bottlenecking the other.

So I'm a bit confused. Can you explain to me how this works? Thanks in advance.
 
Your question is a good, intelligent question and deserves a great answer. :)

Unfortunately, that involves an awful lot of typing and fact-checking. I while back there were issues with some AMD GPUs causing frame tearing ( a relevant concept in the light of your question). At that time one of the reputable review sites implemented a hardware-based frame rate monitor to document this issue better.

As part of that and to introduce their new metrics, they went into incredible detail about the GPU and CPU interaction and how that affects rendering.

I'm typing this in the hope it jogs some brain cells with some other readers and one of them can link you to the articles. I will also start looking. :)
 
no, the cpu and the gpu do completely different tasks, a cpu has a few cores that are really fast, a GPU has a lot of cores that are slow, A GPU handles graphics, lighting, polygons, particles, The cpu handles some of the physics and some other things. It really depends on how the game was programmed.

lets say you wanted to find a word in a book, the CPU starts from the beginning and works its way through the whole book, the gpu starts on every page and works its way through each page simultaneously.

i am a bit confused about your question though. I may be misunderstanding it.
 


Thank you for your answer. To clarify, I understand what each processor does, and I understand that they work in different ways. My question is more interested in how they each specifically affect the latency of a frame (and thus the frame rate).



Thanks for taking the time to find those! :) I will read over them after I get some lunch.
 


At a very high level, think of it thus: the CPU does all the physics calculations regarding motion and events that needs to be represented on the screen.

The actual screen details are vertexes, pixels and other shapes that have to be formed, colored, shaded, lighted and displayed. To do this the tasks are broken up into many parallel activities by the GPU. The end results are in one of two frame buffers, The display merely takes from the frame buffers alternately what's in them. If the image is completed, no issues. If not, then tearing and stuttering occurs.

That's highly simplified.