Page flipping and double buffering
Can anyone explain these 2 things in easy terms?
Also looking to know how the setup of a directX back buffer differs when using these 2 approaches?
Any help muchly appreciated,
Thanks
Got 2 easy explanations:
Double Buffering is the process of drawing an image in an off screen area and then copying It to the display surface.
Page Flipping – Roughly same idea as double buffering except that you draw to one of two potentially visible surfaces and then direct the hardware to make the other surface the active display surface. Basically removes the “copy” step as the hardware addressing system is used to point the video rasterizer to a different porion of memory. End result is an instantaneous page flip and update of the visual on the screen – hence the term page flipping
If anyone else is interested,
Does anyone know how the setup of DirectX back buffer differs between them?
Double Buffering is the process of drawing an image in an off screen area and then copying It to the display surface.
Page Flipping – Roughly same idea as double buffering except that you draw to one of two potentially visible surfaces and then direct the hardware to make the other surface the active display surface. Basically removes the “copy” step as the hardware addressing system is used to point the video rasterizer to a different porion of memory. End result is an instantaneous page flip and update of the visual on the screen – hence the term page flipping
If anyone else is interested,
Does anyone know how the setup of DirectX back buffer differs between them?
hmm, think you might be getting muddled here [smile]
"Page Flipping" (aka "Page Swapping") is the process of redirecting the pointer between output buffers. What you described as page flipping sounds more like triple buffering [smile]
Double buffering alternates from front->back->front->back->front->back, where as Triple buffering is more of a "ring buffer" mechanism B0->B1->B2->B0->B1->B2->B0->B1->B2
Triple buffering can be more performance-efficient because you can effectively queue up an extra frame and you're less susceptable to presentation stalling (which is a bit of a moot point unless you're using VSYNC). However, it's less space-efficient as you need to store an extra frame buffer.
hth
Jack
"Page Flipping" (aka "Page Swapping") is the process of redirecting the pointer between output buffers. What you described as page flipping sounds more like triple buffering [smile]
Double buffering alternates from front->back->front->back->front->back, where as Triple buffering is more of a "ring buffer" mechanism B0->B1->B2->B0->B1->B2->B0->B1->B2
Triple buffering can be more performance-efficient because you can effectively queue up an extra frame and you're less susceptable to presentation stalling (which is a bit of a moot point unless you're using VSYNC). However, it's less space-efficient as you need to store an extra frame buffer.
hth
Jack
Quote:Original post by nickster01
Does anyone know how the setup of DirectX back buffer differs between them?
does anyone know the answer to this question?
Quote:Original post by whoop1Quote:Original post by nickster01
Does anyone know how the setup of DirectX back buffer differs between them?
does anyone know the answer to this question?
D3DPRESENT_PARAMETERS::BackBufferCount is all that you need to change to switch between double/triple buffering.
hth
Jack
D3DSWAPEFFECT defines swap effects
setup buffer swap behavior when setting up the device
D3DPRESENT_PARAMETERS::SwapEffect
setup buffer swap behavior when setting up the device
D3DPRESENT_PARAMETERS::SwapEffect
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement