Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

glFramebufferTexture2D performance

I'm doing heavy computation using the GPU, which involves a lot of render-to-texture operations. It's an iterative computation, so there's a lot of rendering to a texture, then rendering that texture to another texture, then rendering the second texture back to the first texture and so on, passing the texture through a shader each time.

My question is: is it better to have a separate FBO for each texture I want to render into, or should I rather have one FBO and bind the target texture using glFramebufferTexture2D each time I want to change render target?

My platform is OpenGL ES 2.0 on the iPhone.

like image 388
nornagon Avatar asked Jun 14 '10 07:06

nornagon


2 Answers

On the iPhone implementation, it is inexpensive to change the attachment, assuming the old and new textures are the same dimensions/format/etc. Otherwise, the driver has to do some additional work to reconfigure the framebuffer.

like image 186
Frogblast Avatar answered Oct 19 '22 01:10

Frogblast


AFAIK, better performance is achieved by using only one FBO, and changing the texture attachments as necessary.

like image 3
Dr. Snoopy Avatar answered Oct 19 '22 02:10

Dr. Snoopy