Am Dienstag, 25. April 2006 19:20 schrieb Stefan Dösinger:
Hi,
AFAIK, there are four targets OpenGL can draw to on X: X windows, Pbuffers, FBOs or GLX pixmaps. EXT_framebuffer_object should be the most interesting approach, as it's supposed to somewhat similar to Pbuffer rendering, but supposed to be more portable and faster: "This extension defines a simple interface for drawing to rendering destinations other than the buffers provided to the GL by the window-system." But I guess a FBO or a GLX pixmap would still introduce a similar performance hit compared to Pbuffer rendering?
FBOs are very interesting for this, but the mail performance issue is to read back from the video card. Video cards are mainly output devices, reading from them is slow. AFAIK the driver even has to use PCI transfers for that, because AGP isn't designed for reading back data. I could be wrong with this, and I don't know how PCIe affects this.
Probably got something wrong, but FBOs are supposed to be very fast, exactly because you _don't_ have to read the data back? It also needs no context switches, and it's supposed to work on pretty much all graphic cards, even very old ones.
Here's a small presentation by Simon Green/ Nvidia, including comparison between FBOs, Pbuffers and WGL_ARB_render_to_texture: http://download.nvidia.com/developer/presentations/2005/GDC/OpenGL_Day/OpenG...
And a small overview, also by Simon Green: http://www.gamedev.net/columns/events/coverage/feature.asp?feature_id=75