Hello,
yes, I know glReadpixels is quiet slow, but I have to use it and that is not the point
For my application I am interested in fast readback of my rendered scene. That’s why I measured the time the transfer take.
So I take the time, read pixels from the buffer and take the time again to estimate the elapsed time.
I tested this on my laptop for testing prupose equipped with an ATI radeon mobility x700 and got a average of 15 ms. quiet high, but this is not the problem at all!
I have done the same test on my target machine, equipped with Nvidia Quadro FX 3500.
I got very strange results:
0.002538
0.002548
0.002540
0.002545
0.002557
0.002578
0.002558
0.002543
…
0.020149
0.034502
0.024774
0.039152
0.037828
0.028562
0.029556
0.030189
0.040288
all times in seconds.
The first frames are copied very fast about some ms! but after 22 or 23 frames the copy time rise about factor 10! its the double or tribble of my radeon mobile !
What happens here ?
I have done the test with glReadpixels and glGetTexImage with bound FBO, glReadpixels and MapBuffer and PB/PBO and glReadpixels and the default framebuffer. It is alle the same drop-off!
I added a sleep command between my two measurements and another very strange happened.
for sleep times from 0 to 10 ms nothing changed, but if the application sleeps 100 or 1000 ms the drop-off do not occur.
0.103809
0.103563
0.102490
0.102299
0.103093
0.102961
0.102787
0.102594
0.104578
0.103186
0.102908
0.103701
0.103597
0.102443
0.103125
0.103041
0.102860
0.102666
0.102475
0.102294
0.103078
0.102886
0.102705
I am very confused why this happens…
Ohh all test done on windows XP!
Is there any bug in the nvidia driver (I used the latest forceware driver) or in nvidia’s opengl implementation ?
Thanks for all replys !
Chris