Original Post
I am taking screen captures of an OpenGL application in real-time using glReadPixels() and experiencing a performance issue. I've followed the advice provided here:
http://www.gamedev.n...g-glreadpixels/
and here:
http://www.gamedev.n...screen-capture/
where samoth had the excellent suggestion to use PBO's, so I implemented his approach based on the information provided here:
http://www.songho.ca...ngl/gl_pbo.html
This works great on a Windows 7 system with AMD FirePro M5950 graphics and a very old Ubuntu 12.04 system with Radeon RV250 [Mobility FireGL 9000] graphics, but chokes on new Ubuntu 12.04 system with integrated Intel graphics. glReadPixels() takes >600ms to return even though (as I understand it) it should return immediately due to the asynchronous PBO use. I'm using GLEW for the OpenGL extensions and it appears that the graphics drivers support the GL_ARB_pixel_buffer_object extension. Any ideas? somoth mentioned that supplying wrong PBO flags can cause stalls, but i don't know what those might be.
http://www.gamedev.n...g-glreadpixels/
and here:
http://www.gamedev.n...screen-capture/
where samoth had the excellent suggestion to use PBO's, so I implemented his approach based on the information provided here:
http://www.songho.ca...ngl/gl_pbo.html
This works great on a Windows 7 system with AMD FirePro M5950 graphics and a very old Ubuntu 12.04 system with Radeon RV250 [Mobility FireGL 9000] graphics, but chokes on new Ubuntu 12.04 system with integrated Intel graphics. glReadPixels() takes >600ms to return even though (as I understand it) it should return immediately due to the asynchronous PBO use. I'm using GLEW for the OpenGL extensions and it appears that the graphics drivers support the GL_ARB_pixel_buffer_object extension. Any ideas? somoth mentioned that supplying wrong PBO flags can cause stalls, but i don't know what those might be.