On 31. Jul 2008, at 12:10, Mathias Heyer wrote:

> Hi,
>
> I’m currently wondering about the order of render-operations done in  
> Equalizer. The Programming Guide tries to explain it, but I’m still  
> confused. In order to make it clear to myself, I derived from Node,  
> Pipe, Window and Channel and added outputs to each rendering stage   
> (frameStart, frameDrawFinish, frameFinish) in order to actually see  
> how it behaves.
> Additionally, I choose the example “3-channel-cave”. Which is using  
> 3 channels inside a single window on single pipe on a single node. I  
> turned multithreading off and started the program. The log of a  
> single Frame looks like this:
>

[...]
>
> This order is quite surprising to me, since frameDrawFinish of all  
> classes involved is called more than once per frame (despite their  
> documentation)!
> I would have expected this:
[...]

You are right - this is a bug. Weird that this didn't show up before,  
since it should introduce all kinds of strange behaviours...
>
> The multithreaded case is even less clear to me.
> For instance, I need a time where I _know_ that none of the node’s  
> pipes is doing any rendering anymore (i.e. do not access the scene  
> database). Is that Node::frameFinish?

By default this is between pipe(s)->waitFrameLocal() (called in  
eq::Node::frameDrawFinish) and Node::startFrame (called in  
Node::frameStart).

You can relax this synchronization, the Programming Guide has a  
section on this.

>   Also, where is a place I knew that none of the pipes is doing any  
> rendering _yet_. Is that Node::frameStart?

Node::startFrame unlocks the pipe threads (which use  
Node::waitFrameStarted in Pipe::frameStart).

>
> I tried it this way, but as soon as I enable multithreading, the  
> pipe-thread and the main thread get out of sync and my applications  
> crashes L

I think this is related to the frameDrawFinish, which is called to  
early. Mea culpa. :(


HTH,

Stefan.
-- 
http://www.eyescale.ch
http://www.equalizergraphics.com
http://www.linkedin.com/in/eilemann




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

Reply via email to