On cinematic rendering and AGP downloads
Where do the frames go?
THE REPONSE TO MY RECENT article on next-generation graphics chips
was interesting. A number of graphics professionals wrote meeither excitedly or with great skepticismabout the prospect of GPUs (or VPUs or whatever they're calling 'em this month) rendering "production quality" graphics. Most of the skepticism seemed ill-informed to me, but a few of my correspondents pointed out a very practical problem with rendering high-quality graphics in real time (or nearly so) on a graphics chip: getting those rendered frames back from the video card and stored on disk.
You see, today's graphics subsystems have gobs of bandwidth, from main memory (2.1GB/s or greater) to the AGP bus (1GB/s for AGP 4X) to the graphics card's own internal memory (20GB/s in some cases). Graphics cards can render hundreds of frames per second for display. But once the frames have been sent out the RAMDAC to a monitor, standard operating procedure is simply to discard them.
That's all well and good when all you want to do is play video games, but for other uses, it's a real problem. Now that graphics chips are getting the internal precision to produce some truly stunning images, we'll want to capture that high-quality output and store it. Unfortunately, even the very newest cards and drivers don't seem to be up to the job. Despite over 1GB per second of potential bandwidth on the AGP bus, current cards transfer data back into main memory much, much slower than needed. At least, that was the claim of more than one person who wrote in response to my article. We've tested the latest graphics cards, including the Radeon 9700, for this problem. Read on to see what we found.