Return to Webwrench Previous Articles Who is the Webwalker? Webwalker Articles in Print
 
WebWalker's World November 1998
Just Say No!AGP: Graphics on Speed

If polygon counts keep you up at night, AGP is your relief.

Because many of us in the computer industry spend our time staring at a vacuum tube, the quality of what we see is frequently a sore point. Many 2D thinkers can stumble along fine with a 256 color display on a 14" monitor, but those of us who dream in color would find these constraints unacceptable. If your world includes 3D modelling or rendering, you need a quality visual experience with your bit box.

Since the days of the IBM XT, the graphically inclined have been looking for ways to get the graphic data to the screen faster. In the past, real time solid modelling was science fiction; now it can be done on a PC. The headache, however, is that the more bandwidth your video card takes up, the less is left for your other system devices that share the I/O bus with the video card.

To preface the introduction of the Accelerated Graphics Port (AGP), let us quickly review video adapter technology for PCs. Most IBM XT computers came with a Color Graphics Adapter (CGA) video display that displayed the standard 80 columns of text. Later came the Enhanced Graphics Adapter (EGA) display that offered more colors and mode switching, the capacity to change the display resolution and frequency on the fly. The Video Graphics Adapter (VGA) system is the one most computer users will be familiar with: 256 colors, 640 x 480 display pixels. The subsequent Super VGA (SVGA) specification added the capacity to push color depth to 16 million colors with a maximum resolution of 1280 x 1024. All of these adapters plugged into the Industry Standard Architecture (ISA) or Extended Industry Standard Architecture (EISA) slots on your mainboard (the Politically Corrected name for "motherboard".) The color depth available and the resolution supported were dependent upon the amount of memory in the video card.

Now PCs have never provided a great gaming platform. Most complex computer games require a physical architecture wholly dedicated to moving the data to the screen. PCs simply aren’t configured for that. Having to pass display data through the 8 or 16 bit ISA or EISA display bus has been a BIG bottleneck for smooth video.

So, the speed problem on a PC is primarily in the bus.

Now a bus, in computer terms, is simply a channel over which information flows between three or more devices. A bus normally has access points, or places which a device can tap into to become part of the bus. Devices on the bus can send to and receive information from other devices. The bus concept is rather common, both inside the PC and in the real world. In fact, your home telephone wiring is a bus: information flows through the wiring that goes through your house, and you can tap into the "bus" by installing a phone jack, plugging in the phone and lifting the receiver. All the phones can share the "information" (voice) on the bus. As with a PC bus, there is only a limited amount of bandwidth to go around.

The first attempt to address the bus speed problem was made with Intel’s introduction of their Peripheral Component Interconnect (PCI) bus interface on early Pentium systems. PCI was a step ahead of EISA because it created a more direct (and wider bandwidth) route to the CPU. With transfer speeds up to 524 megabits and a wide 64 bit architecture, PCI looked to be in the game for a long time. PCI based video cards have brought the PC gaming quality up to standards that make it a dead match for dedicated game consoles like Nintendo 64 and Sony PlayStation.

But, as frequently happens, some technologies are a victim of their own success. As the dedicated systems moved ahead with games that offered experiences in 3D modeled battlefields, (like the perennial favorite, MechWarrior, or the gruesome Quake II) the PCI based systems had a difficult time providing smooth video, despite the wide data path of the PCI architecture. It doesn’t matter how quickly you can get the data from the CPU if the CPU can’t keep up with the computational load. The amount of computation to do real time 3D at 29 frames per second can be extremely steep, as those of you who do 3D Studio are well aware. Adding environment effects like texture mapping, reflectivity, fog, and smoke rapidly drowns the CPU under the load.

To offset the CPU’s inability to handle the heavy computational load, 3D "accelerated" video adapter’s were introduced by leading manufacturers. Simply put, 3D enhanced adapters take part of the specialized processing load off of the CPU and handle it within the adapter. However, this still didn’t solve the problem of how to get the whole system working together as a cohesive unit; rather it was a parceled-out Rube Goldberg fix.

Enter Intel’s new architecture, AGP.

As 3D computing becomes more common, significantly larger amounts of memory are required, not just for the screen image but also for doing the 3D calculations. This traditionally has meant putting more memory on the video card for doing this work through the 3D accelerator. There are two problems with this: Cost and Size. Video card memory is very expensive compared to regular system RAM and the amount you can physically fit on the card is limited as well.

If you have installed 6MB on a traditional video card and you do not use the system for 3D functions regularly, the extra memory (and the extra expense) are essentially wasted when not in use. Also, if you want to install more memory, you may not be able to do so because there are no more physical slots available on the card.

AGP gets around these problems by allowing the video accelerator on the adapter to access the main system memory to do its calculations. This is more efficient because the memory can be shared dynamically between the CPU and the video accelerator, depending on the needs of the system. A spreadsheet doesn’t need 3D acceleration, but the hottest new video games might.

Consequently, AGP’s mission is straightforward: offer a faster, dedicated interface between the video accelerator and the CPU. Since the AGP interface is ONLY between these two devices, this results in three major advantages: it is easier to implement the port on new mainboards without tripping up older peripherals, it is easier to increase AGP in speed (no other devices to worry about sharing the port with), and it becomes possible to put enhancements into the design that are specific to video data without negatively impacting other devices sharing the port.

AGP is considered a port, not a bus, because it involves only two devices (the processor and video card) and is not expandable. One of the great advantages of AGP is that it isolates the video subsystem from the rest of the PC so there isn't the competition for I/O bandwidth as there is with PCI. With the video card removed from the PCI bus, other PCI devices will also benefit from improved bandwidth.

So what do you need to move to AGP? Hang on to your wallet; this isn’t pretty. For starters, you must have a mainboard with an AGP port on it-there is no capacity to retrofit an existing non-AGP mainboard. Second, you must have a mainboard chipset capable of offering AGP services. Most of these are only available from Intel, and then only on Intel Pentium II mainboards. Begin to see a trend? To get INTEL AGP, you must have an INTEL chipset on the mainboard which is available only on INTEL Pentium II systems.

Thankfully, some mainboard makers (such as FIC) have refused to play this game by making mainboards that use an AGP enabled chipset by Apollo. This allows an AGP port to be used with a non-Intel processor. This move thwarted what would have otherwise been a complete coup for Intel. Whew.

Since AGP is still quite new and its capacities cannot be retrofitted to older mainboards, it is not surprising to discover that the only native driver support for AGP adapters is in Windows 98 and the forthcoming Windows 2000 (the OS formerly known as NT). AGP 3D acceleration is only available through Application Program Interfaces (API)s that support it. Microsoft’s Direct3D is one,. If you use a 3D application (like 3D Studio) that ties in to Direct3D, you should see improvement in the smoothness and speed of your solid modelling, and also in final output rendering. Although, if your primary application is a spreadsheet, AGP isn’t going to help.

However long you intend to wait for your next upgrade, keep in mind that the speed increase from AGP means that it will quickly become a "must have" when working up the specifications for your new system. I expect to be running AGP not sooner than six months from now, and I recommend that time frame to everyone. New technology is sweet, but the first Service Release of bug fixes only makes it sweeter.

Peace,

WebWalker

(R. Marshall Webber is a Web Developer for The Boeing Company in Everett, Washington. He and his wife, Sarah, make their home near Seattle.)
Return to Webwrench Previous Articles Who is the Webwalker? Webwalker Articles in Print