Hi Ralf, You can only do the glReadPixel call from the graphics thread so you can't thread this, all you can do is hide the cost of download from the GPU by using a double buffered PBO, as the osgscreencapture example illustrates. To thread the writing of data you'll need to have a ring buffer of imagers that the draw thread writes to, and a background writing thread reads from.
Robert. On Thu, Sep 25, 2008 at 2:57 PM, Ralf Stokholm <[EMAIL PROTECTED]> wrote: > Hi All > > In our application we have added the option of capturing video from our > playback stream. It works fine but performance is problematic. We are > currently using a simple glReadPixels call to get the immage from the > videocard, this takes around 5-6 ms in addition we append the immage to an > AVI video stream this takes another 12 ms. It should be possible to put the > 12 in another thread, but I was vondering if it would be possible to do the > same with part of the glReadPixels call using PBO's. > > This is what I have in mind: > > From the Draw thread on initialrendercallback I would: > > glBindBuffer(GL_PIXEL_PACK_BUFFER_ARB, read_pbo) > glReadPixels() //ASYNC > SignalVideoThread() //Async > > and the in the video recorder thread when signaled > > > glBindBuffer(GL_PIXEL_PACK_BUFFER_ARB, copy_pbo); > GLubyte* src = > (GLubyte*)ext->glMapBuffer(GL_PIXEL_PACK_BUFFER_ARB,GL_READ_ONLY_ARB); > AVIStream.addframe(src) > glUnmapBuffer(GL_PIXEL_PACK_BUFFER_ARB); > glBindBuffer(GL_PIXEL_PACK_BUFFER_ARB, 0); > > Can someone tell me if this is feasable?, I was thinking that it would be > problematic to do the gl calls from another thread? or should I use a > compleately different approach? > > This is run on windowsXP, Core2 quad, Nvidia GX280 > > Brgs. > > Ralf Stokholm > Arenalogic > www.arenalogic.com > _______________________________________________ > osg-users mailing list > [email protected] > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > > _______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

