I upload a pre-compressed S3TC image into the texture memory by:
glCompressedTexImage2D( GL_TEXTURE_2D, /* target */ 0, /* mipmap level */ GL_COMPRESSED_RGBA_S3TC_DXT1_EXT, /* S3TC compression format */ imageSizeX, /* image size x */ imageSizeY, /* image size y */ 0, /* border pixels */ bytes, /* image data size in bytes */ buffer /* image data */ );
The uploaded image is displayed correctly
But the uploading time on ATI cards are very high (ATI 9800 XT, Catalyst 4.3, AGP: 4x, Fast write: on):
512x512: ~1 second 1024x1024: ~4 seconds!!! 2048x2048: ~16 seconds!!!
The timing is done by:
glFlush(); // get start time glCompressedTexImage2D(...); glBegin(GL_TRIANGLES); glEnd(); // get end time
Without the glBegin()/glEnd() execution blocks at least at the next rendering of a primitive for the same duration!
On my NVidia GeForce4go equipped notebook the loading times are:
512x512: <0.05 seconds 1024x1024: <0.17 seconds 2048x2048: <0.65 seconds
Is this a known ATI driver bug?
Any suggestions to workaround this problem?