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

