multiple texture performance with ATI card
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.
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.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement