[info-performer] pfFrameStats::mQuery question

Date view Thread view Subject view Author view

From: faculaganymede (faculaganymede++at++yahoo.com)
Date: 05/11/2004 15:14:13


pfExperts,

I have a pfFrameStats::mQuery question - why is the
APP time when using one pipe is ~0.113 msec, yet it's
0.000 msec when two pipes are used?

I am running my Performer application on an Onyx 300
IR3 with 2 pipes and 8 CPUs, running IRIX 6.5.20m and
Performer 3.0. I want to query the frame processing
times. Here are some code fragments showing what I
did:

// Declare variables to store frame times
    float frates[igSAVE_STATS_NUM_FRAMES];
    pfFStatsValProc
fstats_array[igSAVE_STATS_NUM_FRAMES][1];
    pfFrameStats *fstats;

// Save processing times for each frame inside
run-time loop
    static int k=0;
    frates[k]=pfGetFrameRate();
    static uint query[]={PFFSTATS_BUF_PREV |
PFFSTATSVAL_PFTIMES_PROC, NULL};
    fstats->mQuery(query, fstats_array[k],
sizeof(fstats_array[k]));
    k++;

// Write frame times to file outside run-time loop
    FILE *stat_fp = fopen("stat.txt","w");
    for(int k=0; k<igSAVE_STATS_NUM_FRAMES; k++)
    {
        fprintf(stat_fp,
"-----------------------------frame=%d----------------------------\n",
k);
        fprintf(stat_fp, "frame rate=%f\n", frates[k]);
        fprintf(stat_fp, "total=%f; ",
1000*fstats_array[k][0].total);
        fprintf(stat_fp, "app=%f; ",
1000*fstats_array[k][0].app);
        fprintf(stat_fp, "cull=%f; ",
1000*fstats_array[k][0].cull);
        fprintf(stat_fp, "draw=%f; ",
1000*fstats_array[k][0].draw);
        fprintf(stat_fp, "isect=%f; ",
1000*fstats_array[k][0].isect);
        fprintf(stat_fp, "dbase=%f; ",
1000*fstats_array[k][0].dbase);
        fprintf(stat_fp, "lpoint=%f; ",
1000*fstats_array[k][0].lpoint);
        fprintf(stat_fp, "compute=%f\n",
1000*fstats_array[k][0].compute);
    }

So, when I run my app using 1 pipe and single
processing mode, this is what I get for the frame
times in msec:
...
-----------------------------frame=288----------------------------
frame rate=200.000000
total=0.000000; app=0.108000; cull=0.027200;
draw=2.197600; isect=0.000000; dbase=0.000800;
lpoint=0.000000; compute=0.000000
-----------------------------frame=289----------------------------
frame rate=200.000000
total=0.000000; app=0.113600; cull=0.029600;
draw=2.184000; isect=0.000000; dbase=0.001600;
lpoint=0.000000; compute=0.000800
...

When I run my app using 2 pipes in single processing
mode, this is what I get for the frame times in msec:
...
-----------------------------frame=288----------------------------
frame rate=200.000000
total=11.996800; app=0.000000; cull=0.688000;
draw=2.170400; isect=0.000000; dbase=0.000000;
lpoint=0.000000; compute=0.000000
-----------------------------frame=289----------------------------
frame rate=200.000000
total=12.023200; app=0.000000; cull=0.703200;
draw=2.196800; isect=0.000000; dbase=0.000000;
lpoint=0.000000; compute=0.000000
...

QUESTION: Why is the APP time when using one pipe is
~0.113 msec, yet it's 0.000 msec when two pipes are used?

=====
Thanks,
faculaganymede

        
                
__________________________________
Do you Yahoo!?
Win a $20,000 Career Makeover at Yahoo! HotJobs
http://hotjobs.sweepstakes.yahoo.com/careermakeover


Date view Thread view Subject view Author view

This archive was generated by hypermail 2b29 : Tue May 11 2004 - 15:17:42 PDT