Jump to content

Swap chain

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Kerdek (talk | contribs) at 03:11, 30 October 2009. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

In computer graphics, a Swap Chain is a series of framebuffers utilized by the graphics card or graphics API in an immediate mode graphics processing environment for frame rate stabilization and several other functions. The swap chain usually exists in graphics memory, but it can exist in system memory as well.

Function

The first framebuffer, the screenbuffer, is the buffer that is rendered to the output of the graphics card or a variety of other locations for further processing depending on the environment the client application is running in. Each time new frame is displayed, the first back buffer in the swap chain takes the place of the screenbuffer, this is called presentation or swapping. A variety of other actions may be taken on the previous screenbuffer; it may be erased from memory, or returned to the front of the swap chain for further processing. The action taken is decided by the client application and is API dependent.

Direct3D

Microsoft Direct3D implements a 'SwapChain' class. Each host device has at least one swap chain assigned to it, and others may be created by the client application.[1] The API provides three methods of swapping: 'copy', 'discard', and 'flip'. When the SwapChain is set to 'flip', the screenbuffer is copied onto the last backbuffer, then all the existing backbuffers are copied into the next framebuffer. When 'copy' is set, the screenbuffer is simply copied over, leaving the last backbuffer empty. 'Flip' does not work when there is only one backbuffer, as the screenbuffer is copied over the only backbuffer before it can be presented. In 'discard' mode, the driver selects the best method.[2]

Notes

References

  • "SwapChain Class". Microsoft. Retrieved 30 October 2009.
  • "Swap Chains". neXe. Retrieved 30 October 2009.