On days I read a very interesting article, saying, that there's exist two general architectures in GPU design: IMR and TBDR architecture's. One of them used in modern PC-based graphics card GPU's, and other in embedded devices, such as mobile phones, et cetra.
The core design principle behind the TBDR architecture is to reduce the system memory bandwidth required by the GPU to a bare minimum. As transfer of data between system memory and the GPU is one of the biggest causes of GPU power consumption, any reduction that can be made in this area will allow the GPU to operate at a lower power. Additionally, the reduction in system memory bandwidth use and the hardware optimizations associated with it (such as using on-chip buffers) can boost application performance. Because of this development strategy, POWERVR graphics cores have become dominant in the embedded electronic devices market.
I'm just curious: why do they even need to drive vertex data from GPU to CPu and vice versa?
Why not just load all the data (at the begining) in VRAM, so a GPU would have a riect acces to them without any delays? Because, as far as we all know, all operations, connected to operations on vertex or texel data are done in GPU internally, there's like no reason for CPU to even touch these data.
CPU in this chain are only needed to send commands to GPU, like, "Hey, you, GPU, turn on the camera, that I set previously on coordinates 0,0,0, by 25.61415 degress in X plane" or "Hey, GPU, set framebuffer resolution to 1024*768, 32bpp color-depth". Maybe I missing some part of how GPU and CPU's are operating together todays, but anyway.
Hope you'll enlighten me a little.