Perfomance lost after rendering to MRT on ATI

I’am attaching two textures to a framebuffer object. Then I call glDrawBuffers(2, …)
After that I render to this FBO, and disable it.
But all further rendering become 5-10 times slower.

What might be the problem?
Video: R9800pro

Framebuffer setup:

...
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, FBO);
glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, tex1, 0);
glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT1_EXT, GL_TEXTURE_2D, tex2, 0);
glDrawBuffersARB(2, drawBuffers);
glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, depthId);
CheckFramebufferError();//No error

Disable fbo:

glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, 0, 0);
glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT1_EXT, GL_TEXTURE_2D, 0, 0);
glDrawBuffersARB(1, drawBuffers);
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);

drawBuffers = {GL_COLOR_ATTACHMENT0_EXT…GL_COLOR_ATTACHMENT3_EXT}

Are you using the latest drivers? And do you use textures you rendered into to texturize something? If so, are they squares with 2^k size? If they are not squares with the power-of-two size, ATI cards are likely to fall back to software rendering…

Yes, textures are 2^k size.
I’am using Catalist 5.10

First, try downloading the latest ATI drivers (www.ati.com). Second, what is drawBuffers in the call glDrawBuffersARB(1, drawBuffers)? Does it specify the application-defined buffer attachment or GL_BACK_LEFT?

I’ve installed latest drivers, but there isn’t any difference.

drawBuffer specify attachements from GL_COLOR_ATTACHMENT0_EXT to GL_COLOR_ATTACHMENT3_EXT

Does your rendering goes correct after disabling the framebuffer (except for speed)? I mean, there is a possibility of forgetting to turn off shaders, setting incorrect depth tests etc. By the way, what does “5 to 10” times slower mean? Does it refer to the ratio of fps without using framebuffers entirely to fps with using framebuffer?

Yes, rendering after that goes correct.
If I just setup and disable FBO speed doesn’t fall, but if I render something(or just call glClear(GL_DEPTH_BUFFER_BIT)) all goes much slower.

Render to MRT - always 5ms
Render everything else(without rendering to MRT) - 15ms
Render everything else(+Render to MRT) - 45ms

Any ideas?

Topic closed, it is a driver issue.