There is a bug in Catalyst Opengl driver when I try to upload an image through a PBO and copy it to a texture.
To produce this issue, three conditions must be met:
1) The image to be uploaded should be large enough, such as 3000+ pixels in width
2) The width of the image is not will aligned, such as not aligned to a multiple of 16/8/4, but store it in PBO in a aligned manner ( an aligned stride)
3) Use glPixelStorei() to set GL_UNPACK_ROW_LENGTH to specify the row length before call glTexSubImage2D()
I have write a sample program to reproduce this bug which has been attached. Build the program under windows 7 x64 with vc10 and run it, after the main window has show up, two images named "correct.bmp" and "bad.bmp" should be generated. "correct.bmp" is the image i want to upload and "bad.bmp" is the image I upload to a texture and then downloaded. You can see "bad.bmp" is a damaged version of "corrent.bmp".
You can use Catalyst 13.4 or 13.9 to reproduce it.
BTW, This sample works fine in nVidia's openGL dirver.
Can anybody in this forum reproduce this issue using the attached sample program?