Russell Suter (russell++at++ctasim.com)
Mon, 16 Dec 1996 20:16:54 -0700
I am porting a flight simulator application from performer 1.2 on IRIX
5.3 to performer 2.1 on IRIX 6.2 to run on a reciently upgraded Onyx
with the following stuff:
hinv
4 150 MHZ IP19 Processors
CPU: MIPS R4400 Processor Chip Revision: 5.0
FPU: MIPS R4000 Floating Point Coprocessor Revision: 0.0
Secondary unified instruction/data cache size: 1 Mbyte
Data cache size: 16 Kbytes
Instruction cache size: 16 Kbytes
Main memory size: 256 Mbytes, 2-way interleaved
I/O board, Ebus slot 3: IO4 revision 1
Integral EPC serial ports: 4
Graphics board: InfiniteReality
IIntegral Ethernet controller: et0, Ebus slot 3
EPC external interrupts
Integral SCSI controller 1: Version WD33C95A, differential, revision 0
Disk drive: unit 3 on SCSI controller 1
Disk drive: unit 2 on SCSI controller 1
Disk drive: unit 1 on SCSI controller 1
Integral SCSI controller 0: Version WD33C95A, single ended, revision 0
CDROM: unit 6 on SCSI controller 0
Tape drive: unit 5 on SCSI controller 0: unknown
CC synchronization join counter
Integral EPC parallel port: Ebus slot 3
VME bus: adapter 0 mapped to adapter 13
VME bus: adapter 13
I am linking with no special flags and the following libraries:
-lpfdwb_ogl -lpfflt_ogl -lpfutil_ogl -lpf_ogl -lpfdu_ogl\
-limage -lfm -lgl -lX11 -lm -ll -lC -lGL -lGLU
My compile lines are similar to the following:
cc -ansi -D_SVR4_SOURCE -I/usr/cs/dwb2/rtm52 -D__EXTENSIONS__ -DNeedFunctionPrototypes=1 -Dmips -DDATA_COLLECTION -DFORMS -DMARP GCINCS = -I. -I/usr/icsim/camiIR/inc -I -I/usr/include -fullwarn -woff 799,658 -D__STDC__=1 -g -G 0 -float -c otw.c
My problem is that the only way I can get the application to run
correctly is in the debugger and pfMultiprocess( PFMP_APPCULLDRAW );.
When I run PFMP_APPCULLDRAW without the debugger, I get a core with
the following partial stack dump:
> 0 _pfGroupList::operator[](int) const(0x181dcd5c, 0x0, 0x0, 0x181dcd40) ["../../../lib/libpf/pfLists.C":38, 0x5e29d3a8]
1 pfNode::pf_recurParentPaths(pfGroup*,_pfVoidList&,pfNode*,int)(0x181dcd40, 0x1818a820, 0x0, 0x181dcd40) ["../../../lib/libpf/pfNode.C":1504, 0x5e2515e4]
2 pfNode::pf_findParentPaths(pfGroup*,_pfVoidList&)(0x181dcd40, 0x1818a820, 0x1818a88c, 0x181dcd40) ["../../../lib/libpf/pfNode.C":1432, 0x5e24fb2c]
3 pfScene::pf_cleanLSources(_pfLSourceList&)(0x1818a820, 0x18100950, 0x0, 0x181dcd40) ["../../../lib/libpf/pfScene.C":347, 0x5e2688bc]
4 clean(void)(0x181dcd5c, 0x0, 0x0, 0x181dcd40) ["../../../lib/libpf/pfProcess.C":1904, 0x5e2a8758]
5 pfAppFrame(0x181dcd5c, 0x0, 0x0, 0x181dcd40) ["../../../lib/libpf/pfProcess.C":2101, 0x5e2a8d20]
6 pfSync(0x181dcd5c, 0x0, 0x0, 0x181dcd40) ["../../../lib/libpf/pfProcess.C":2127, 0x5e2a8eac]
7 DrawPerformer(otw = 0x103291e8, ir = 0) ["/disk2p6/icsim/camiIR/src/simlib/Display/otw.c":4653, 0x4857e4]
[...]
This is the first pfSync.
When I try running PFMP_APP_CULL_DRAW like I want, I run out of Arena memory
with the following messages:
PF Fatal/Resource(2): pfStruct::new() Unable to allocate 134217728 bytes from arena 0x18100000.
Try using pfSharedArenaSize() to increase the arena size
(currently 262144.00 KBytes) and check for adequate setrlimit()
values and available space on swap (or pfTmpDir()).
I have attached in the debugger as the program eats memory and I get
the following stack dump:
> 0 _pfGroupList::grow(void)(0x13b806, 0x4ee018, 0x200000, 0x1851c40c) ["../../../lib/libpf/pfLists.C":38, 0x5e29d5e8]
1 _pfGroupList::setNum(int)(0x1851c40c, 0x3ef5c290, 0x200000, 0x1851c40c) ["../../../lib/libpf/pfLists.C":38, 0x5e29d6a4]
2 _pfGroupList::operator=(const _pfGroupList&)(0x1851c40c, 0x181f119c, 0x200000, 0x1851c40c) ["../../../lib/libpf/pfLists.C":38, 0x5e29ded4]
3 pfNode::pf_copy(const pfNode*,int)(0x1851c3f0, 0x181f1180, 0x200000, 0x1851c40c) ["../../../lib/libpf/pfNode.C":212, 0x5e24f454]
4 pfNode::pfNode(const pfNode*,pfBuffer*)(0x1851c3f0, 0x181f1180, 0x0, 0x1851c40c) ["../../../lib/libpf/pfNode.C":66, 0x5e24d8f0]
5 pfLightSource::pfLightSource(const pfLightSource*,pfBuffer*)(0x1851c3f0, 0x181f1180, 0x0, 0x1851c40c) ["../../../lib/libpf/pfLightSource.C":63, 0x5e241590]
6 pfLightSource::pf_bufferClone(pfBuffer*)(0x181f1180, 0x0, 0x200000, 0x1851c40c) ["../../../lib/libpf/pfLightSource.C":152, 0x5e2418a0]
7 pfBuffer::pf_bufferCloneUpdatable(pfUpdatable*,int)(0x18136660, 0x181f1180, 0x1, 0x1851c40c) ["../../../lib/libpf/pfBuffer.C":813, 0x5e2187d0]
8 pfBuffer::pf_prepareNewUpdatables(int)(0x18136660, 0x0, 0x200000, 0x1851c40c) ["../../../lib/libpf/pfBuffer.C":776, 0x5e218694]
9 pfSync(0x13b806, 0x4ee018, 0x200000, 0x1851c40c) ["../../../lib/libpf/pfProcess.C":2122, 0x5e2a8e60]
10 DrawPerformer(otw = 0x10140020, ir = 0) ["/disk2p6/icsim/camiIR/src/simlib/Display/otw.c":4653, 0x4857e4]
[...]
The same place again on the first pfSync.
I don't have any problems using Perfly with PFMP_APP_CULL_DRAW.
Any ideas???
--
Russ
________________________________________________ ______________________________
Though my eyes could see | Russell Suter
I still was a blind man. | Voice : (303) 889-1262
Though my mind could think | Fax : (303) 889-1210
I still was a mad man. | Internet : russell++at++ctasim.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:54:10 PDT