20,741
edits
m (→Canvas.Path (OpenVG): https://forum.flightgear.org/viewtopic.php?f=71&t=39535&hilit=path+osg+canvas&start=45#p390536) |
m (→Canvas.Path (OpenVG): https://forum.flightgear.org/viewtopic.php?f=71&t=39535&hilit=path+osg+canvas&start=45#p390657) |
||
Line 311: | Line 311: | ||
As far as I can tell right now, it's due to ShivaVG - which some core devs have been wanting to replace/update for years anyway, see for example James' comments on "Skia": [[Canvas_news#Skia_talks]]. | As far as I can tell right now, it's due to ShivaVG - which some core devs have been wanting to replace/update for years anyway, see for example James' comments on "Skia": [[Canvas_news#Skia_talks]]. | ||
{{Note|It's important to highlight that the issue is apprently not specific to Qt5 and neither to the CompositeViewer or the Compositor - it's a bug that people can probably also trigger when using aggressive OSG threading and a single window, since the shiva back-end may get called from multiple OSG threads.}} | {{Note|It's important to highlight that the issue is apprently not specific to Qt5 and neither to the CompositeViewer or the Compositor - it's a bug that people can probably also trigger when using aggressive OSG threading and a single window, since the shiva back-end may get called from multiple OSG threads. | ||
People using single-threaded mode, will still have the same issue built into the binary, but won't trigger it. | |||
People using multi-screen setups or the CompositeViewer mode, will use additional OSG threads which will run into the ShivaVG related issue. | |||
For the time being, the workaround is using single-threaded. | |||
A "fix" would be porting/fixing Canvas.Path to get rid of Shiva or use a different back-end. | |||
An interim solution would be using explicit synchronization (locks/mutexes) to tell OSG not to use threading for Canvas.Path based drawables - according to the docs, that should be possible by setting the data variance to osg::Object::DYNAMIC - but for the drawable itself that is already being done, thus CanvasPath.cxx will probably need a review to add explicit OSG/OpenThread based synchronization (which is probably something best discussed with Fernando, Richard and James on the devel list/issue tracker). | |||
<ref></ref>https://forum.flightgear.org/viewtopic.php?f=71&t=39535&hilit=path+osg+canvas&start=45#p390657</ref>}} | |||