PDA

View Full Version : Nvidia drivers: how to use block transfer?



Marc
11-22-2005, 11:50 PM
Hello everybody!

I have a question, which is may be simple to answer.
I updated the driver of my Nvidia graphics card. The old driver supported page flipping and block transfer for double buffering and I used block transfer. I wrote some OGL programs which use the old picture (I didn't clear the color buffer) for blending to get some nice effects. With page flipping I blend only with every other old picture and get some annoying flickering.
In the new drivers you can't choose anymore and you always have page flipping.
Now my question: is there any application specific way to force block transfer? Or is there any other fast way to preserve the old screen contents as a background for the next picture?
Thank you in advance for any answers!

Marc

P.S.: Geforce4 MX, WinXP SP2

Relic
11-23-2005, 12:44 AM
Select a pixelformat with PFD_SWAP_COPY flag, that must not flip.
ChoosePixelFormat is probably too buggy to take this flag into account. You might need to enumerate pixelformats yourself.

Tom Nuydens
11-23-2005, 01:44 AM
Rather than relying on the driver's page flipping behaviour, you might want to save the old image yourself. You can copy it into a texture rectangle, and put it back for the next frame by rendering a fullscreen quad. Alternatively, you can look into the WGL_ARB_buffer_region extension, which also allows you to save and restore the framebuffer.

Marc
11-23-2005, 02:16 AM
Thank you, I will try it tonight.