multiple texture performance with ATI card

Started by
1 comment, last by dennis2society 17 years, 4 months ago
i am currently encountering the problem that loading multiple textures with an ATI graphics card results in really bad performance (<1fps) while the same code runs fine with nvidia graphic cards. i read a base image from a file with Magick++ and add different text to the resulting images(one image per displayed object). finally i assign the texture to the correspondig object with glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, TEX_WIDTH, TEX_HEIGHT, 0, GL_RGB, GL_UNSIGNED_BYTE, texVector.at(count-1).getTextureBlob().data()); while this works really fine (tested with up to 2500 different textured objects) with my laptops nvidia graphics card, it is completely unusable on ATI cards. does anyone know, how to fix it for ATI? i already tried gluBuild2DMipmaps(GL_TEXTURE_2D........); this improves the ATI performance a little bit, but also reduces performance on NVIDIA. additionally i changed the third argument for glTexImage2D from GL_RGB to GL_RGB_FLOATXX_ATI without any effect.
Advertisement
What are TEX_WIDTH and TEX_HEIGHT? Are they both powers of two? What NVIDIA and ATI cards have you tested this on? The ATI card may not support GL_ARB_texture_non_power_of_two in hardware and so it falls back to a software implementation. That would explain why it works okay with gluBuild2DMipmaps, because that resizes the image to a power-of-two before creating the mipmap chain. If the ATI card supports GL_ARB_texture_rectangle you could try using that, just keep in mind its limitations.

TEX_WIDTH, TEX_HEIGHT were 120.
i just changed the base-image-width to 128 and now it works fine.
thanks!

This topic is closed to new replies.

Advertisement