On 25. Apr 2014, at 12:24, "cpapado [via Software]" 
<[email protected]> wrote:

> My main concern with keeping a local copy of the scene graph in the config's 
> main thread is the "threat" of random OpenGL calls happening without the 
> presence of an OpenGL context. Now, my understanding is that OSG doesn't 
> really do that without an explicit request for a frame, but it still feels a 
> bit "dirty" from a software engineering perspective to duplicate a piece of 
> information that exists on the same machine and in the same process if there 
> is a way to cleanly get access to it without hamstringing EQ's performance. 

You could use the same copy of the SG if you use the default draw_sync 
threading model. The copy would then be maintained by the config, and only the 
lazy-load access method needs to be locked. eqPly uses a similar model, 
although with a static "SG" and async thread model.

In draw_sync, frameFinish is only unlocked after your local Channel::frameDraw 
are completed, therefore you can modify the manipulator in handleEvents without 
locking. Using the Config to store and lazy load the SG would then even work 
for appNodes without a pipe render thread, and no duplication does occur when 
its not needed.


HTH,

Stefan.
-- 
http://www.eyescale.ch
https://github.com/Eyescale/
http://www.linkedin.com/in/eilemann






signature.asc (858 bytes) 
<http://software.1713.n2.nabble.com/attachment/7585389/0/signature.asc>




--
View this message in context: 
http://software.1713.n2.nabble.com/Communicating-information-FROM-the-rendering-code-to-the-application-logic-tp7585385p7585389.html
Sent from the Equalizer - Parallel Rendering mailing list archive at Nabble.com.

_______________________________________________
eq-dev mailing list
[email protected]
http://www.equalizergraphics.com/cgi-bin/mailman/listinfo/eq-dev
http://www.equalizergraphics.com

Reply via email to