Triple buffering

Triple buffering

In computer graphics, triple buffering is a variant on double buffering, a technique for drawing graphics that shows no (or less) flicker, shearing, and tearing artifacts.

Triple buffering attempts to provide a speed improvement over double buffering. In real life applications, this often involves trying to abstract the graphics drawing operations from being synchronized with the monitor's refresh rate. Typically this involves frames being drawn at a rate lower than or higher than the monitor's frame rate (a variable frame rate) without the usual effects this would cause (namely flickering, shearing and tearing).

Due to the software algorithm not having to poll the graphics hardware for monitor refresh events, the algorithm is free to run as fast as possible. This is not the only method of triple buffering available, but is the most prevalent on the PC architecture where the speed of the target machine is highly variable.

Another method of triple buffering involves synchronizing with the monitor frame rate, and simply using the third buffer as a method of providing breathing room for changing demands in the amount of graphics drawn. This is the use of a buffer in the true sense whereby the buffer acts as a . Such a method requires a higher minimum specification of the target hardware but provides a consistent (vs. variable) frame rate. This is the case when using triple buffering in DirectX, where a chain of 3 buffer are rendered and always displayed.

Triple buffering implies three buffers, but the method can be extended to as many buffers as is practical for the application. Usually, there is no advantage to using more than three buffers.

Limitations of double buffering

If the system has two color buffers A and B, it can display buffer B while drawing a new picture (rendering) into buffer A. When it is done rendering into buffer A, the system needs to wait until buffer B is in the monitor's vertical blank period before swapping buffers. This waiting period could be several milliseconds during which neither buffer can be touched. At 60 frames per second, there are only 16.67 milliseconds in which to draw the frame, so this delay could waste valuable frame time. When the monitor is in vertical blank it can either swap buffers A and B and then start rendering into buffer B (page flipping) or copy buffer A into buffer B and render into buffer A.

Advantage of triple buffering

If the system has three color buffers A, B and C, it does not have to wait to swap buffers. It can display buffer B while rendering into buffer A. When done rendering into buffer A, it can start rendering into buffer C immediately. When the monitor is in vertical blank, it can display buffer A and make buffer B available for reuse.

Also, on systems like Amigas, you could paint using the CPU in parallel with the blitter doing a cleanup of a previous buffer, meaning that you could show buffer A, while cleaning buffer B and paint graphics on buffer C. If you only used two buffers, you would have to make sure the cleaning was completely done before starting the drawing on the unused buffer, which would waste some time.

Limitations of triple buffering

If the system always renders buffers in less time than it takes to display a buffer once on the monitor, the computer will wait for the monitor regardless of how many buffers there are. In this particular case triple buffering has no advantage over double buffering. The third buffer also uses additional memory, which could be used for other data (like textures).

Thirdly, if the system is interactive (for example, a simulator or a video game), and using triple buffering as a fixed order reservoir, triple buffering increases the average delay between the input controls being read and visual feedback being presented to the user. In the other case where frames can be dropped without being displayed, triple buffering can actually lower response time by including input data which wasn't available when the previous dropped frames were rendered.

ee also

* Vertical synchronization

External links

* " [http://www.gamecritics.com/triple-buffering-improve-your-pc-gaming-performance-for-free Triple buffering: improve your PC gaming performance for free] " by Mike Doolittle (2007-05-24)


Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Look at other dictionaries:

  • Triple Buffering — Die Dreifachpufferung (englisch triple buffering) beschreibt ein Konzept in der Computergrafik, bei dem der Framebuffer des Video RAM bei Grafikkarten auch Rahmenpuffer genannt in drei Bereiche unterteilt wird. Ziel des Verfahrens ist es, die bei …   Deutsch Wikipedia

  • Triple buffering — Die Dreifachpufferung (englisch triple buffering) beschreibt ein Konzept in der Computergrafik, bei dem der Framebuffer des Video RAM bei Grafikkarten auch Rahmenpuffer genannt in drei Bereiche unterteilt wird. Ziel des Verfahrens ist es, die bei …   Deutsch Wikipedia

  • Multiple buffering — In computer science, multiple buffering is the use of more than one buffer to hold a block of data, so that a reader will see a complete (though perhaps old) version of the data, rather than a partially updated version of the data being created… …   Wikipedia

  • Double buffering — In computer science, double buffering (or ping pong buffering) is a widely used technique for minimizing the delay (flicker) in input/output operations which use a buffer. Single buffering is affected by buffer underrun and buffer overflow.… …   Wikipedia

  • Double Buffering — Doppelpufferung (englisch double buffering) beschreibt ein Konzept in der Computergrafik, bei dem der Framebuffer (Bildspeicher) des Video RAM bei Grafikkarten in zwei Bereiche unterteilt wird. Ziel des Verfahrens ist die Gewährleistung einer… …   Deutsch Wikipedia

  • Double buffering — Doppelpufferung (englisch double buffering) beschreibt ein Konzept in der Computergrafik, bei dem der Framebuffer (Bildspeicher) des Video RAM bei Grafikkarten in zwei Bereiche unterteilt wird. Ziel des Verfahrens ist die Gewährleistung einer… …   Deutsch Wikipedia

  • Dreifachpufferung — Die Dreifachpufferung (englisch triple buffering) beschreibt ein Konzept in der Computergrafik, bei dem der Framebuffer des Video RAM bei Grafikkarten in drei Bereiche unterteilt wird. Ziel des Verfahrens ist es, die bei gleichzeitiger Verwendung …   Deutsch Wikipedia

  • Triplebuffering — Die Dreifachpufferung (englisch triple buffering) beschreibt ein Konzept in der Computergrafik, bei dem der Framebuffer des Video RAM bei Grafikkarten auch Rahmenpuffer genannt in drei Bereiche unterteilt wird. Ziel des Verfahrens ist es, die bei …   Deutsch Wikipedia

  • Titan Quest — Éditeur THQ Développeur Iron Lore Concepteur Brian Sullivan Date de sortie 30 juin 2006 (France) Version 1.30 …   Wikipédia en Français

  • VESA BIOS Extensions — (VBE) comprise a VESA standard, currently at version 3, that defines the interface that can be used by software to access compliant video boards at high resolutions and bit depths. This is opposed to the traditional int 10h BIOS calls, which are… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”