Gan Wang (gan++at++cavalier.cambridge.com)
Thu, 22 Aug 1996 16:30:58 -0400
In the "asdfly" sample code provided, a pfSwitch node is used to implement a
*double buffer* to evaluate two pfTerrains and associated gsets. It appeared
to me it would have problems in multiprocess mode. This is what I think why.
Assuming that in current frame, APP evaluates into gsets in buffer1 (pointed
by tl->active in the code) while CULL/DRAW work with those in buffer2, and
buffers are switched at the end of this frame. In the next frame, APP would
start working with buffer2 when CULL gets buffer1. But, DRAW still has the
gsets from buffer2 (which were worked on by CULL in the previous frame). Now,
both APP and DRAW are working on the same gsets!!!
I am more puzzled because the sample code works...
I thought the triple buffers should be used here in accordance to the three
phase APP_CULL_DRAW, while double buffers would not be sufficient for the three
process stages. Are gsets copied down the pipe now? Or, is there something
delaying pfTerrainEvaluateMesh() for a frame that I don't understand? What am
I missing here?
Gan
--Gan Wang
Cambridge Research Associates Office: 703-790-0505 ext.7210 1430 Spring Hill Road, Suite 200 Fax: 703-790-0370 McLean, VA 22102 Internet: gan++at++cambridge.com ======================================================================= List Archives, FAQ, FTP: http://www.sgi.com/Technology/Performer/ Submissions: info-performer++at++sgi.com Admin. requests: info-performer-request++at++sgi.com
This archive was generated by hypermail 2.0b2 on Mon Aug 10 1998 - 17:53:24 PDT