Hi Wang Rui,

multithreading is stable on my ubuntu 11.04, Radeon 5470. More precisely, just 
CullDrawThreadPerContext. I am using it almost for a month and it is stable. 
If I remember it correctly, the biggest problem was with widget hide event 
that comes for example on windows minimize. At that moment, Qt is doing 
glFinish before hiding the widget. And that definitely does not work, as main 
thread does not hold current context because rendering is in progress in other 
thread. I workarounded it in osgQt, however, I feel like Qt needs to be 
cleaned to fully support multithreaded rendering.

Anyway, osgQt is stable for me except one case that I found: I can not change 
threading model back to singlethreaded and return it back later. I wanted this 
to query some information from OpenGL (Renderer, etc.) and to avoid some 
racing, etc. Unfortunately, new starting of threads does not work at my 
machine. So, once set, I am never changing threading model.

As I already wrote, I am using CullDrawThreadPerContext and if I remember 
correctly, other models were not stable, unfortunately.

So, these are the pieces that I gathered. Feel free to share your own findings. 
It would be nice to get all threading models running properly. Unfortunately, 
it may include Qt debugging and fixes.

John


> ------------ Original message ------------
> From:  Wang Rui <[email protected]>
> Subject:  Re: [osg-submissions] improved osgQt::GraphicsWindowQt
> Date:  14. 5. 2011  15:27:33
> ----------------------------------------
> Hi John,
> 
> Good to see the Qt integration improved. Just what to know: is the
> multithreading problem under Linux solved now? I'm confused by it for
> a long time. :-)
> 
> Thanks,
> 
> Wang Rui
> 
> 2011/5/14 PC John <[email protected]>:
> > Hi Robert,
> > 
> > I have improved GraphicsWindowQt:
> > 
> > - renamed osgQt::GraphWidget to osgQt::GLWidget
> > as it better fits to Qt naming (osgQt::GLWidget is derived from QGLWidget
> > while recent GraphWidget... it is unclear, maybe QGraphicsView,
> > QGraphicsScene,....)
> > - added the code to properly manage ON_DEMAND rendering scheme
> > (involves osgQt::setViewer() and internal HeartBeat class)
> > - added forward key events functionality. It allows to not eat the key
> > events by GLWidget, but it forwards them to Qt processing as well.
> > - destroying GLWidget before GraphicsWindowQt and vice versa does not
> > crash the application
> > - it is possible to request particular QGLFormat in GLWidget constructor
> > - added QtWindowingSystem class
> > - multithread OSG rendering improvements/fixes
> > 
> > John
> > 
> > _______________________________________________
> > osg-submissions mailing list
> > [email protected]
> > http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegra
> > ph.org
> 
> _______________________________________________
> osg-submissions mailing list
> [email protected]
> http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph
> .org
_______________________________________________
osg-submissions mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org

Reply via email to