Has anyone got glGenerateMipmapsEXT working on an ATI card (especially FireGL cards)?
I just don’t get it working. No GL errors are thrown; the same code works on nvidia. The result are just white textures. Using the obsolete SGIS_generate_mipmap extension worked, though. Manually generating and uploading all mipmap levels works also.
Additionally, I’d like to ask about/point out some “grey space” in the FBO specs concerning glGenerateMipmapEXT:
What happens, if I request a compressed internal format to glTexImage and some time later call glGenerateMipmapEXT? Will the driver derive the mipmaps from the already-compressed texture or will it use the uncompressed source data (which it would have to keep around, just for the case described)
To everyone struggling with glGenerateMipmapEXT on ATI:
Remember to glEnable(GL_TEXTURE_2D) (or whatever target you are using) before calling glGenerateMipmapEXT(GL_TEXTURE_2D). Or else it doesn’t work (at least not here)
Another thing that I found is that you need to disable the mipmapping filter (for example by setting it to GL_LINEAR,GL_LINEAR) just before calling glGenerateMipmapEXT.
Apparently it’s a driver bug: when mipmaps are generated in hardware, it probably tries to downsample the top-most level with a box filter which performs 4 texture samples, but if mipmap filtering is enabled, the result is undefined… so the mipmaps generation itself becomes undefined. Talk about shooting yourself in the feet…