I’m having performance problems with glCopyTexSubImage2D on Intel graphics chips, and I can’t quite figure out why.
I recently retired my usage of pbuffers (since they aren’t supported on Intel hardware) and chose instead to render my off-screen stuff before I re-clear the screen and render my real scene, capturing my what I rendered “off-screen” to a texture with glCopyTexSubImage2D.
On the nVidia and ATi cards I’ve been able to try with, glCopyTexSubImage2D takes around 0.05-0.10 ms, which I think is reasonable, but on Intel hardware it tends to take 50 ms – three orders of magnitude more!
My first thought was that the framebuffer and texture formats didn’t match so that it had to do some expensive conversion, but that doesn’t seem to be the case. My framebuffer has 8 bits of red, green, blue and alpha, and I initialize the texture with glTexImage2D, using GL_RGBA for internalformat.
Has anyone else encountered this problem, or otherwise know what it is?