This article is from the comp.sys.ibm.pc.hardware.video Frequently Asked Questions, by Michael Scott with numerous contributions by others. (v1.0).
The term accelerator is used so frequently that it has lost much of its meaning. This section is intended to answer how a video card with special purpose video acceleration works, typically called 'Windows accelerator' or 'coprocessed' cards. In a general sense, the principals here can be applied to 2D, 3D and digital video acceleration. For more specific information about 3D and digital video acceleration, see "How does a 3D graphics accelerator work?" and "What does a video codec do?". Before we get into acceleration, we have to understand how a VGA card works.
A VGA card is a simple display adapter with no processing capability. All the thinking is done by the CPU, including writing and reading of text, and drawing of simple graphics primitives like pixels, lines and memory transfers for images.
Programs like most DOS-based word processors run in VGA text mode while graphics-based programs like games run in graphics mode. Microsoft Windows 3.1 runs in VGA graphics mode as default, meaning that every pixel you see as a part of the background, a window or text character had to be written using basic VGA calls. As you can imagine, the low-level nature of the VGA command set means that many commands are required to do something as simple as moving or closing a window. To move a window, the VGA commands might go something like this:
-Block transfer to store window contents in PC RAM
-Solid rectangle fill (to blank window - cosmetic)
-Block transfer to put window in new location in VGA RAM
-Block transfer or Write pixel to rewrite background behind old window location.
Clearly, an enormous amount of data must move from the VGA card, along the bus, into the CPU, and on into memory, and vice versa. This has to occur because the VGA card has no processing capability of its own, it relies on the CPU. Now we are in a position to understand how a graphics accelerator works.
A VGA card has its own memory and digital-to-analog converter (DAC), but can't actually process data. Accelerated video cards have their own processor, and therefore are called video coprocessors. This means such a card can perform many video operations by itself, with only minimal input from the CPU. Let's go back to our example of moving a window.
Assume our 'accelerated' card can keep track of:
-the background fill pattern
-the location and contents of rectangular regions, i.e. windows
-and has adequate memory to store them.
To move a window, the CPU has to transmit something like:
-'move window' instruction
-window ID
-location to move to
At this point, the video card can perform all of the operations the CPU would have had to with a VGA card. This frees the bus and CPU to execute other tasks, and speeds-up video operations as they're all done on the video card. Why is this faster? Unlike VGA mode, where every pixel has to be moved to and from the card via the bus and CPU, the accelerated card can perform the same operations with instructions consisting of only a few bytes being transferred along the bus. This will result in an enormous performance gain for most common graphics operations including bitmap and pixmap transfers and painting, movement of sprites and icons, opening and closing of windows, filling with solid colours and patterns, line drawing, polygon painting, etc. As a result, even an ISA bus accelerator video card can provide blistering speed improvements over VGA in graphical environments like Windows 3.1, OS/2, X Windows (i.e. XFree86) and AutoCAD. Some operations like animations or raw video playback which require large block transfers at high rates will benefit less from accelerator cards.
Some newer accelerator cards include functions for 3D graphics rendering like polygon shading, coordinate manipulation and texture mapping. Others provide on-the-fly magnification of video clips so that those MPEG movies don't appear in a box that's three inches wide and two inches high on your screen.
However, keep in mind that the implementation of a given video coprocessor is proprietary. This means we're tied to a system where every video accelerator has a set of proprietary drivers which interpret video commands. Different drivers are required for each operating system or software program that wishes to take advantage of acceleration functions. Some 3D graphics standards like SGI's OpenGL and PHIGS are being integrated into workstation video hardware, and perhaps in the future a 3D (or even 2D!) standard will be accepted by PC component manufacturers to provide a consistent set of video instructions for accelerated hardware.
 
Continue to: