PDA

View Full Version : glGenerateMipmap on ATI



skynet
04-14-2008, 01:32 PM
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)

Leadwerks
04-14-2008, 04:27 PM
I have found that glMipmapGenerate does not work on any of the ATI cards I have tested. Neither does GL_SELECT render mode.

bakura
05-06-2008, 12:30 PM
It doesn't seem to work neither on my 3870HD... How to generate mipmaps with ATi cards ? I have three textures that are created by an FBO.

I can generate them with glTexParameter (GL_GENERATE_MIPMAP), but if I set GL_*_MIPMAP_* for MIN_FILTER, it doesn't work :/.

Do I have to generate my mipmaps by hand on the GPU ?

Brolingstanz
05-06-2008, 02:16 PM
I can get myGenerateMipmapsEXT to work on any card ;-)

Might be nice anyway if you want a tent, Gaussian or something other than an off the rack box filter.

Duckers
11-18-2008, 07:02 AM
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)

dletozeun
11-18-2008, 07:12 AM
I got it working on a Radeon mobility X1600. Probably due to reason given by Duckers

Ysaneya
11-19-2008, 03:04 AM
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..

Y.

Jackis
11-19-2008, 11:11 AM
I've discovered some problem on nVidia with glGenerateMipmap() and GL_ALPHA textures - their succeeding mip levels became thrashed.