From: Bill Moore (bmoore++at++world.northgrum.com)
Date: 05/04/2000 18:44:29
I modified simple.c to benchmark some models and I noticed that the
textures appear to be reloading every frame. I played with it a little
bit more and noticed it only occurs when I compile n32 with gl on an
Onyx/IR machine. If I compile o32 with gl, o32 with opengl, or n32 with
opengl it works fine. I'm running under Irix 6.5.6m and Performer 2.7.2.
I've attached a copy of simple.c, the make file, and a hinv from the
machine. Some of my applications are n32/gl and it is happening with
them also, so I need to figure out why this is happening. Does anyone
have a fix or a suggestion?
Thanks
Bill
8 196 MHZ IP25 Processors
CPU: MIPS R10000 Processor Chip Revision: 3.1
FPU: MIPS R10010 Floating Point Chip Revision: 0.0
Main memory size: 384 Mbytes, 2-way interleaved
Instruction cache size: 32 Kbytes
Data cache size: 32 Kbytes
Secondary unified instruction/data cache size: 2 Mbytes
Integral SCSI controller 0: Version WD33C95A, single ended, revision 0
CDROM: unit 5 on SCSI controller 0
Tape drive: unit 6 on SCSI controller 0: DAT
Tape drive: unit 7 on SCSI controller 0: QIC 150
Integral SCSI controller 1: Version WD33C95A, differential, revision 0
Disk drive: unit 1 on SCSI controller 1
Disk drive: unit 3 on SCSI controller 1
Disk drive: unit 4 on SCSI controller 1
Integral EPC serial ports: 4
Integral EPC parallel port: Ebus slot 11
Graphics board: InfiniteReality
Integral Ethernet controller: et0, Ebus slot 11
I/O board, Ebus slot 11: IO4 revision 1
VME bus: adapter 45
VME bus: adapter 0 mapped to adapter 45
EPC external interrupts
PF_LIB = -limage -lXm -lXt -lXmu -lX11 -lfpe
IGL_LIB = -lpf_igl -lpfdu_igl -lpfui -lpfutil_igl -lgl
OGL_LIB = -lpf_ogl -lpfdu_ogl -lpfui -lpfutil_ogl -lGL
LIBRARIES = -lm
#PF_LIBRARIES = $(OGL_LIB) $(PF_LIB) $(LIBRARIES)
PF_LIBRARIES = $(IGL_LIB) $(PF_LIB) $(LIBRARIES)
all: simple_o32 simple_n32
simple_o32: simple_o32.o
CC -o32 -o simple_o32 -Wl,-woff,15,-woff,134,-woff,84,-woff,85 simple_o32.o $(PF_LIBRARIES)
simple_o32.o: simple.c
CC -c -o simple_o32.o -g -o32 -mips2 -DPF_C_API -DPF_CPLUSPLUS_API=0 -DIRISGL=1 simple.c
simple_n32: simple_n32.o
CC -n32 -o simple_n32 -Wl,-woff,15,-woff,134,-woff,84,-woff,85 simple_n32.o $(PF_LIBRARIES)
simple_n32.o: simple.c
CC -c -o simple_n32.o -g -n32 -mips3 -DPF_C_API -DPF_CPLUSPLUS_API=0 -DIRISGL=1 simple.c
/*
* Copyright 1995, Silicon Graphics, Inc.
* ALL RIGHTS RESERVED
*
* UNPUBLISHED -- Rights reserved under the copyright laws of the United
* States. Use of a copyright notice is precautionary only and does not
* imply publication or disclosure.
*
* U.S. GOVERNMENT RESTRICTED RIGHTS LEGEND:
* Use, duplication or disclosure by the Government is subject to restrictions
* as set forth in FAR 52.227.19(c)(2) or subparagraph (c)(1)(ii) of the Rights
* in Technical Data and Computer Software clause at DFARS 252.227-7013 and/or
* in similar or successor clauses in the FAR, or the DOD or NASA FAR
* Supplement. Contractor/manufacturer is Silicon Graphics, Inc.,
* 2011 N. Shoreline Blvd. Mountain View, CA 94039-7311.
*
* Permission to use, copy, modify, distribute, and sell this software
* and its documentation for any purpose is hereby granted without
* fee, provided that (i) the above copyright notices and this
* permission notice appear in all copies of the software and related
* documentation, and (ii) the name of Silicon Graphics may not be
* used in any advertising or publicity relating to the software
* without the specific, prior written permission of Silicon Graphics.
*
* THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
* EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
* WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
*
* IN NO EVENT SHALL SILICON GRAPHICS BE LIABLE FOR ANY SPECIAL,
* INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY
* DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
* WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY
* THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE
* OR PERFORMANCE OF THIS SOFTWARE.
*
* simple.c: simple Performer program for programmer's guide
*
* $Revision: 1.47 $ $Date: 1995/11/22 14:36:13 $
*
*/
#include <stdlib.h>
#include <Performer/pf.h>
#include <Performer/pfutil.h>
#include <Performer/pfdu.h>
/*
* Usage() -- print usage advice and exit. This
* procedure is executed in the application process.
*/
static void
Usage (void)
{
pfNotify(PFNFY_FATAL, PFNFY_USAGE, "Usage: simple file.ext ...\n");
exit(1);
}
int
main (int argc, char *argv[])
{
float t = 0.0f;
pfScene *scene;
pfNode *root;
pfPipe *p;
pfPipeWindow *pw;
pfChannel *chan;
pfSphere bsphere;
pfFrameStats *frameStats;
if (argc < 2)
Usage();
/* Initialize Performer */
pfInit();
/* Use default multiprocessing mode based on number of
* processors.
*/
pfMultiprocess( PFMP_DEFAULT );
/* Load all loader DSO's before pfConfig() forks */
pfdInitConverter(argv[1]);
/* initiate multi-processing mode set in pfMultiprocess call
* FORKs for Performer processes, CULL and DRAW, etc. happen here.
*/
pfConfig();
/* Append to Performer search path, PFPATH, files in
* /usr/share/Performer/data */
pfFilePath(".:/usr/share/Performer/data");
/* Read a single file, of any known type. */
if ((root = pfdLoadFile(argv[1])) == NULL)
{
pfExit();
exit(-1);
}
/* Attach loaded file to a new pfScene. */
scene = pfNewScene();
pfAddChild(scene, root);
/* Create a pfLightSource and attach it to scene. */
pfAddChild(scene, pfNewLSource());
/* Configure and open GL window */
p = pfGetPipe(0);
pw = pfNewPWin(p);
pfPWinType(pw, PFPWIN_TYPE_X);
pfPWinName(pw, "IRIS Performer");
pfPWinOriginSize(pw, 0, 0, 700, 700);
/* Open and configure the GL window. */
pfOpenPWin(pw);
/* Create and configure a pfChannel. */
chan = pfNewChan(p);
pfChanScene(chan, scene);
pfChanFOV(chan, 45.0f, 0.0f);
frameStats = pfGetChanFStats(chan);
pfFStatsClass(frameStats, PFSTATS_ENGFX, PFSTATS_ON);
pfFStatsClass(frameStats, PFFSTATS_ENDB, PFSTATS_ON);
/* determine extent of scene's geometry */
pfGetNodeBSphere (root, &bsphere);
pfChanNearFar(chan, 1.0f, 10.0f * bsphere.radius);
/* Simulate for twenty seconds. */
while (t < 20.0f)
{
pfCoord view;
float s, c;
/* Go to sleep until next frame time. */
pfSync();
/* Initiate cull/draw for this frame. */
pfFrame();
pfDrawChanStats(chan);
/* Compute new view position. */
t = pfGetTime();
pfSinCos(45.0f*t, &s, &c);
pfSetVec3(view.hpr, 45.0f*t, -10.0f, 0);
pfSetVec3(view.xyz, 2.0f * bsphere.radius * s,
-2.0f * bsphere.radius *c,
0.5f * bsphere.radius);
pfChanView(chan, view.xyz, view.hpr);
}
/* Terminate parallel processes and exit. */
pfExit();
}
This archive was generated by hypermail 2b29 : Thu May 04 2000 - 18:45:46 PDT