Re: Framerate on iR, Part II...

New Message Reply Date view Thread view Subject view Author view

Sharon Clay (src++at++rose.engr.sgi.com)
Thu, 11 Sep 1997 03:09:32 -0700


+>---- On Sep 10, 5:14pm, Don Hatch wrote:
> Subject: Re: Framerate on iR, Part II...
->From guest++at++holodeck.csd.sgi.com Wed Sep 10 20:39:23 1997
->Subject: Re: Framerate on iR, Part II...
->
->On Sep 10, 1:37pm, Jan Barglowski wrote:
->> Subject: Framerate on iR, Part II...
->> Thanks to all who've replied, and sorry I haven't summarized sooner!
->>
->> I still have the ~2 second "glitch", and here's what I've done so far:
->>

[ ... ]

->
->Did you try my suggestion?
->Here's my reply again in case it didn't make it the first time...
->
->On Sep 5, 8:48am, Don Hatch wrote:
->> Subject: Re: Framerate on iR...
->> On Sep 3, 3:12pm, Jan Barglowski wrote:
->> >

[ ... ]

->>
->> Others have seen the every-two-seconds jump as well.
->> It turns out it was due to frame stats collection, which is done
->> be default every 2 seconds.

Important clarification here: it was not due to stats collection which
is very fast and independent of the UPDATE period but due to the copying
the data down to the cull process to be later be drawn in your
display after the averaging over the UPDATE period has been done.
The copy to the draw process is OK.
The bug was that only the few enabled/change stats need to be
copied from the app to the cull, not the entire structure - an
incorrect flag was given to the copy routine.
So, the hit is in a very specific place (start of the CULL of
each channel where APP updates the CULL) and a very fixed size (time to
copy the structure).
This means that the APP and CULL processes are the ones that
are impacted and a forked CULL process is required to incur the hit.

->>
->> If you are working from perfly source,
->> you can change this by looking for the lines:
->> pfFStatsAttr(fsp, PFFSTATS_UPDATE_SECS, 2.0f);
->> first = 0;
->> and changing them to:
->> pfFStatsAttr(fsp, PFFSTATS_UPDATE_SECS, whatever_you_want);
->> if (i == ViewState->numChans-1)
->> first = 0; /* did it on all the channels once */
->> (The added "if" should have been there all along;
->> without it, this will only happen on the first channel,
->> which is wrong when running with multiple channels;
->> this will be fixed in Performer 2.2).

We will also be able to fix this in 2.0/2.1 compatibility
libraries that will ship with 2.2.

src.

-- 
-----{-----{---++at++   -----{----{---++at++   -----{----{---++at++   -----{----{---++at++
Sharon Rose Clay (Fischler) - Silicon Graphics, Advanced Systems Dev.
src++at++sgi.com  (415) 933 - 1002  FAX: (415) 965 - 2658  MS 8U-590
-----{-----{---++at++   -----{----{---++at++   -----{----{---++at++   -----{----{---++at++
=======================================================================
List Archives, FAQ, FTP:  http://www.sgi.com/Technology/Performer/
            Submissions:  info-performer++at++sgi.com
        Admin. requests:  info-performer-request++at++sgi.com

New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2.0b2 on Mon Aug 10 1998 - 17:55:54 PDT

This message has been cleansed for anti-spam protection. Replace '++at++' in any mail addresses with the '@' symbol.