A computer monitor is constantly redrawing the visible video page (at around 70 times a second), and so is difficult to make changes to (such as creation or movement of complex objects onscreen) without the monitor showing the results before the graphics operation is complete. This results in ugly artifacts such as flickering, tearing and shearing.
A software implementation of double buffering uses a video page stored in system RAM that all drawing operations are written to. When a drawing operation is considered complete, the whole page, or a portion of it, are copied into the video RAM (VRAM) in one operation. This is generally synchronised so that copy operation is ahead of the monitor's raster beam so that ideally (if the copy is faster than the video beam) artifacts are avoided. The software method is not always flawless, and has a higher overhead than the hardware method.
The hardware method is also known as 'page flipping'. In this method, two graphics pages in VRAM are used. At any one time, one page is actively being displayed by the monitor, while the other, background page is being drawn. When drawing is complete, the roles of the two pages are switched, so that the previously shown page is now being modified, and the previously drawn page is now being shown. The hardware method guarantee's artifacts will not be seen as long as the pages are switched over during the monitor's vertical blank period when no video data is being drawn.
This method requires twice the amount of VRAM as is required for a single video page.
A variation of double buffering exists called triple buffering