In order for the graphics processors to start work on the next frame while the current one is showing, two separate parts of the video memory, called frame buffers are used. The one buffer stores the current frame and the other stores the next frame while it's being worked on by the graphics processors. This lets them work on the next frame while the output processor, the RAMDAC, is busy reading the current frame and outputting it to the screen.
However, it also means the graphics processors might become idle at times. After they finish the work on the next frame to be shown, they must wait for the RAMDAC to finish reading the current frame buffer and skip to the next. The graphics processors can then start work on a new frame in the buffer the RAMDAC finished reading. Sometimes, this can waste quite alot of capacity that could be well needed. A simple and common solution is to let the RAMDAC skip to the next frame the moment that has been finished. This lets the graphical processors continue without having to wait, but it also means the frames will change in the middle of the screen. This causes a flickering effect called tearing, and is most noticeable on fast moving objects and scenery.
Triple buffering solves this problem by adding an extra buffer for the graphical processors to work in. This lets them start work on a new frame without having to wait for the RAMDAC, which in turn doesn't need to skip to the next frame in the middle of the screen. The extra buffer means there is always room for a frame to be waiting in line while both the graphical processors and the RAMDAC are busy. Thanks to this, it's possible to both keep the speed up and avoiding the tearing effect. However, there is the drawback of the extra buffer taking up extra memory, so the maximum screen resolution and/or color depth are lower than with double buffering.
|