Hi,

I'm trying to speed up some code that pulls that from the framebuffer using glReadPixels.

I've created two PBO with usage set to GL_STREAM_READ_ARB. My rendering code then alternate between the two PBO and do the following:

glBindBufferARB(GL_PIXEL_PACK_BUFFER_ARB, current);
glReadPixels(..., 0);
glBindBufferARB(GL_PIXEL_PACK_BUFFER_ARB, 0)

I was under the impression that glReadPixel would return immediately, but these three lines takes about 6 ms for a 1024 x 1024 framebuffer.

Currently the code isn't doing any map/unmap so the data should never leave the GPU.

I'm using a Quadro FX 3500 with the latest drivers (169.96).

Am I doing something wrong or is this to be expected?

/A.B.