Edited by MoHammaD_93, 20 September 2012 - 08:11 AM.
CPU to GPU data transfer speed
#4 Members - Reputation: 114
Posted 20 September 2012 - 08:29 AM
Why does this documentation say something that looks contrary: http://www.opengl.org/wiki/Performance#CPU_and_Bus_limits
Bus bandwidth: There is a finite limit to the rate at which data can be sent from the CPU to the graphics card. If you require too much data to describe what you have to draw - then you may be unable to keep the graphics card busy simply because you can't get it the data it needs.
#5 Moderators - Reputation: 13506
Posted 20 September 2012 - 08:52 AM
With a PCI 16x bus at 60 FPS, that's a theoretical maximum of ~68MB per frame total.
For an old AGP 4x bus at 60 FPS, that's a theoretical maximum of ~18MB per frame.
N.B. regular system RAM is also pretty slow -- the theoretical maximum for DDR2 at 60FPS is only ~53MB per frame!
Memory in general is usually a bottleneck, so you should reduce all unnecessary memory transfers, not just GPU memory transfers.
What kind of data are you planning on copying around every frame?
Edited by Hodgman, 20 September 2012 - 08:54 AM.
#6 Members - Reputation: 3801
Posted 20 September 2012 - 08:52 AM
As I indicated, this occurs when you try to update an object from CPU-side, but the GPU is currently using it for drawing. When this happens the GPU must flush all pending drawing commands before the update can proceed, as otherwise a pending drawing command using that object may (will) have invalid data. This is quite an expensive operation as it breaks CPU/GPU parallelism.
It appears that the gentleman thought C++ was extremely difficult and he was overjoyed that the machine was absorbing it; he understood that good C++ is difficult but the best C++ is well-nigh unintelligible.







