5

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.

Brad Larson
  • 170,088
  • 45
  • 397
  • 571
nornagon
  • 15,393
  • 18
  • 71
  • 85

3 Answers3

6

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.

Frogblast
  • 1,671
  • 10
  • 9
3

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

Dr. Snoopy
  • 55,122
  • 7
  • 121
  • 140
0

The best way is to do benchmark.

andrewchan2022
  • 4,953
  • 45
  • 48