Our application uses glReadPixels to read 1920x1080 rgb frame from from the nvidia graphics card so that we can send it out on SDI on a different video board. This has been working for us for years.
However, a client of ours is currently experiencing a significant rendering slowdown after using the application for some time (20-30minutes). After lots of debugging we have found that on the client machine, it is the glReadPixels call that suddenly starts using 800+ milliseconds to read a frame, while it normally only takes about +/-8 ms.
Restarting the application temporarily resolves the issue. glReadPixels is back to 8ms avg for about 20-30 minutes, and then suddenly drops to 800ms and stays there until application is restarted. No GL Errors are reported in conjunction with the performance drop.
The catch is that we have not been able to reproduce this on our own developer machine (same OS version, software, drivers, same application setup and data). The one known difference between client and dev machines are the graphics card (they use GT9800 and GTX285, while we have tested 8800 and GT460)?? Not being able to reproduce the issue makes debugging very cumbersome:(
Have anyone seen any similar sudden performance drop issue with glReadPixels? Any theories on what the cause could be and where to look?
Any help, hints or ideas are all more than welcome. You could answer me directly instead of bothering the osg-users list if you prefer. I’ll post the solution if/when we find it.