views:

381

answers:

2
+1  A: 

Problem SOLVED


The reason of FBO incomplete is due to texture consistence. When using glGenerateMipmapEXT/glGenerateMipmap, u must make sure your texture's base level contains VALID DATA; otherwise, that call fails without any error notification.

There're two possible solutions for your referrence:

  1. Use TexImage or TexSubImage to fillup your renderable texture before glGenerateMipmap

  2. Attach the renderable texture to a dummy FBO before glGenerateMipmap

Either way works (tested on GF8,GF9) Not tested on ATI cards.

That'd be great if anyone can test it out on ATI GPUs.

PS. Pls let me know if u have problem using these solutions.

dex
A: 

Wow, I'm having the same problem on ATI Radeon 9800. But I made a call with gltexImage2D.

Render to the first level is possible but not the others. Maybe I should try the dummy FBO method.

ponce
I'm look forward to see your result of dummy FBO experiment.
dex
Actually I gave up with this and used hardware mipmap for these cards. Some gotchas about ATI GPU, epspecially the older R300 series (tested on Radeon 9700 to x700) : can't render to NPOT texture| can't use texture2DLod in the fragment shader| must stick to #version 110 to use them| can't have const arrays of matrices| can't have dynamic indices in an array| cannot switch-case either (x700)| must call glEnable(GL_TEXTURE_xD) when binding textures or your GLSL samplers will return black
ponce