20,741
edits
(→Views) |
m (→Threading) |
||
Line 145: | Line 145: | ||
* as long as you have two GPU's the most efficient way to drive them should be multi-threaded - there is a caveat though, hardware and drivers aren't always up to scratch, and even then they should be able to manage the multi-threads and multi-gpus seemless they fail too.<ref>https://www.mail-archive.com/osg-users@lists.openscenegraph.org/msg18332.html</ref> | * as long as you have two GPU's the most efficient way to drive them should be multi-threaded - there is a caveat though, hardware and drivers aren't always up to scratch, and even then they should be able to manage the multi-threads and multi-gpus seemless they fail too.<ref>https://www.mail-archive.com/osg-users@lists.openscenegraph.org/msg18332.html</ref> | ||
* Cull and draw can only run in a parallel once all the dynamic geometry has been dispatched, otherwise the draw will be dispatching data that is being modified by the next frames update and cull traversals. Perhaps you have some dynamic geometry or StateSet's that are holding back the next frame. <ref>https://www.mail-archive.com/osg-users@lists.openscenegraph.org/msg36238.html</ref> | * Cull and draw can only run in a parallel once all the dynamic geometry has been dispatched, otherwise the draw will be dispatching data that is being modified by the next frames update and cull traversals. Perhaps you have some dynamic geometry or StateSet's that are holding back the next frame. <ref>https://www.mail-archive.com/osg-users@lists.openscenegraph.org/msg36238.html</ref> | ||
The ThreadPerCamera is just shorthand for | |||
CullThreadPerCameraDrawThreadPerContext, which will explain a bit more | |||
what's actually happening - it's meant to allow the draw thread to | |||
progress in parallel with the next frame. | |||
There is a mechanism built into the backend to hold back the next | |||
frame if there are any Drawables or StateSet's with their DataVariance | |||
marked as DYNAMIC, however, if your whole scene is STATIC then this | |||
will allow the next frame to advance. There isn't any default | |||
additional mechanism for holding back the next frame. There are | |||
mechanisms for doing a swap ready check for multi-context systems <ref>https://www.mail-archive.com/osg-users@lists.openscenegraph.org/msg72040.html</ref> | |||
=== Sharing scenes === | === Sharing scenes === |