To: Bilow who wrote (40706 ) 4/26/2000 4:52:00 PM From: Plaz Read Replies (2) | Respond to of 93625
A simple way of expressing the graphics bandwidth problem is that each bit of graphics display memory, has to be read from or written to once for each vertical retrace, assuming double buffering of the display. More modern high end graphics controllers can use more memory to describe the image than the completed image actually contains. As an example, the Nvidia DDR system uses 256Mbits = 32MBytes of memory. In order to read and write all that memory 60 times per second, you would need a bandwidth of 32MBytes * 120/sec = 4GBytes/sec, which is about how much bandwidth the Nvidia card actually provides. Thus with more modern technology, the memory bandwidth problem doesn't get better. It still boils down to something like 120 or so reads or writes per bit per second. Bilow, Unlike most of your technical diatribes, you're treading on an area I know something about here. The quoted paragraph makes absolutely no sense. It's so factually inaccurate, I'm not really sure where to begin. So let's begin at the beginning and go sentence by sentence:A simple way of expressing the graphics bandwidth problem is that each bit of graphics display memory, has to be read from or written to once for each vertical retrace, assuming double buffering of the display Inacuracies: 1. No, graphics bandwidth is completely dictated by the requirements of 3D rendering. You're thinking 2d, which is a trivial case for today's video cards bandwidth. 2. For rendering 1 frame of a 3d animation, there's a lot more than just the RAMDAC reading the final result once per vertical retrace as you state. The texture data needs to be read, texture data could be written for incoming or generated textures, Z buffer read and written, and the final framebuffer value written. 3. What in the world would double buffering have to do with it anyway? You're just throwing out technical mumbo-jumbo which you don't understand. Double buffering is having the RAMDAC displaying 1 frame buffer while the scene is being rendered into another. When the scene is finished the buffers are switched. But this has no effect on the memory accesses frequency in any event. It is used to keep the image updates in synch. It's not even relevant to your argument.In order to read and write all that memory 60 times per second, you would need a bandwidth of 32MBytes * 120/sec = 4GBytes/sec, which is about how much bandwidth the Nvidia card actually provides Inacuracies: 1. Again, 3d rendering is why the memory bandwidth is there. Assuming that "all memory needs to be read and written 60/sec" is NOT an approximation. I don't know what hat you pulled that out of. It must have just fit your result so you used it. A better calculation would be that to sustain 60fps at 1024x786x32, it would require x bandwidth, where x is: read/write 32 bit Z-buffer: 60 x 1024 x 768 x 4 (16bit) x 2 (read and write) = 377 MB/sec read/write 32 bit framebuffer: 60 x 1024 x 768 x 4 x 2 = 377 MB/sec The GeForce2 GTS has 166MHz 128 bit DDR memory, giving 5312 MB/sec of bandwidth. So there's still most of the bandwidth unaccounted for! Where is it going? It's going to reading texture information to be applied to the pixels. This is where, unless you work for a 3d chip manufacturer, analysis becomes difficult. The 3D chip has an internal texture cache, so the texture cache hit rate is significant here. There's also questions like "how many MB of textures are there in the entire rendered world", "how many MBs of textures need to be displayed right now", "how many textures are coming in over the AGP bus", "when a texture is displayed, how much of it is actually displayed (vs. occluded)", etc. This is where I'll switch to benchmarks, because an analysis of this is really hard without making a lot of assumptions. But, any analysis of the benchmark results shows that even the GeForce2 GTS is bandwidth limited at 1024x768x32 and above, but is CPU limited at 640x480x16. See (http://www.firingsquad.com/hardware/nv15preview/page9.asp). Look how the numbers drop drastically for 1024x768 and above. This is mostly due to memory bandwidth limitations. Saying that read and write all that memory 60 times per second has nothing to do with the real situation and is not even a good approximation, as an approximation at least depends on resultion and depth.Thus with more modern technology, the memory bandwidth problem doesn't get better. It still boils down to something like 120 or so reads or writes per bit per second. Inacuracies: 1. The "moderness" of the technology has nothing, absolutely nothing, to do with the bandwidth limitations. We're bandwidth limited because we are expecting so much more from video cards these days and, at high resolutions and pixel depths, most any 3d chip (GeForce, VSA-100, TNT2U), V3, etc)is able to outperform current, cutting edge memory technology. 2. Again, 120 reads or writes per second has nothing to do with it. I challenge you to find anything in my post that is inaccurate. Are all of your technical articles filled with such nonsense? I'm not qualified to judge most of your technical posts as I'm not a DRAM engineer, but this one leaves a lot to be desired. Plaz