I work on a project and I use the extension GL_CLAMP_BORDER because I apply a texture smaller than the region where it is applied, and I need the uncovered region to be transparent.
On my desktop computer, all goes fine ( 140FPS average), but when I launch on my laptop, I have 0,2 frames per secondes. If I turn-off CLAMP_BORDER, I have a 140 framerate.
My laptop GPU is a Geforce4 MX 420.
Maybe GL_CLAMP_BORDER is not supported by this card.
So is ther a way to have the same results on my textures witout GL_GLAMP_BORDER ?
Another way would be to use GL_CLAMP_TO_EDGE and set the alpha of the edge texels to 0 so that alpha test kills them. You loose two texels in each direction, but get full hardware acceleration.
ok, but I can’t edit my textures, because I work on an 2D animation software, and my textures are drawings, and I can’t retouch all frames(36000 frames by episods )
You can change the alpha programmatically before download of the texture, not on the original and by hand.
Do you actually use texture borders or only the texture border color?
I don’t expect that to make a difference on the GF4MX though.
If it falls back to software rendering, check if not using a hardware pixelformat on those works better.
The other option is to require a minimum hardware equipment above that of your laptop.
I can’t say if there’s another solution with the current informations of “a 2D animation program”.
Depending on your shading requirements, maybe you can use multitexturing with your “image” in the first texture unit and a small 2D alpha cutoff in the second texture unit.