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
This archive was generated by hypermail 2b29 : Tue May 11 2004 - 15:17:42 PDT