<div dir="ltr"><div><div>Hi Pete,<br><br></div><div>Lots of OSG applications will use multi-threading, use database paging etc, the OSG has lots of support for this directly in the core.<br></div><div><br></div>You can customize the OSG behaviour by overriding the way the threads are set up just by subclassing from osgViewer::Viewer/ViewerBase an override the setThreadingModel/setUpThreading() methods.  This is not what I normally expect users to need to do, but in your instance you aren't an ordinary user, as a power user subclassing from OSG classes is quite common - the OSG's strength is that it's pretty extensible.<br><br></div>Robert.<br></div><div class="gmail_extra"><br><div class="gmail_quote">On 29 November 2015 at 18:41, Pete Black <span dir="ltr"><<a href="mailto:pete@marchingcubes.com" target="_blank">pete@marchingcubes.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Robert,<br>
<br>
I want to unset the CPU affinity that OSG hardcodes. Currently I achieve this under Linux with sched_set_affinity calls. But this requires platform-specific defines in my code, and just seems ugly.<br>
<br>
I have no idea why you would consider applications doing their own threading to be 'niche'. Doesn't every non-trivial application that deals with any kind of streaming data (terrain, video) need to multithread this in order to get acceptable performance where the main thread is blocked by vsynced OpenGL?<br>
<br>
Personally my application uses polyvox to continuously update a voxel terrain (it is a basic simulation of a coral reef), run the bullet physics engine on thousands of objects (fish), decode/cache videos using ffmpeg (for informational elements and animated skyboxes), pull frames from a webcam attached to the system and run OpenCV image analysis on them for gesture recognition.<br>
<br>
I guess I just do not expect my libraries to be silently making decisions about which CPUs to use, especially when it is done in such an invasive way, with no API provided to 'undo' it.<br>
<br>
- Pete<br>
<span class=""><br>
------------------<br>
Read this topic online here:<br>
</span><a href="http://forum.openscenegraph.org/viewtopic.php?p=65789#65789" rel="noreferrer" target="_blank">http://forum.openscenegraph.org/viewtopic.php?p=65789#65789</a><br>
<div class="HOEnZb"><div class="h5"><br>
<br>
<br>
<br>
<br>
_______________________________________________<br>
osg-users mailing list<br>
<a href="mailto:osg-users@lists.openscenegraph.org">osg-users@lists.openscenegraph.org</a><br>
<a href="http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org" rel="noreferrer" target="_blank">http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org</a><br>
</div></div></blockquote></div><br></div>