Re: [info-performer] Segmentation Fault in pfCuller.

Date view Thread view Subject view Author view

From: Paolo Farinelli (paolo++at++sgi.com)
Date: 08/18/2003 18:57:10


Hi Ken,

Performer's cliptexture emulation implementation uses cull
programs internally, to assign cliptextured geosets to sub-bins
depending on the texture resolution that will be mapped on them.

This could be at the root of your problem, but I cannot say from
looking at the gdb info you sent us.

Would it be possible for you to send us a small program that
exhibits this problem? This would be the easiest way for us
to try to figure out what's going wrong.

Thank you very much.
Regards,
Paolo

Ken Sewell wrote:

>I'm currently running performer 3.0.2 under Suse linux 8.2 using gcc 3.3.
>I am using my own Draw callback, but not my own Cull callback.
>
>I have an application that loads up terrain and sets an eyepoint
>using pfDoubleDCS's. The application is also using cliptexture emulation.
>If I run it stand-alone, the application runs fine. However, if I add a
>node to the scenegraph (like when a new player is added to the simulation)
>I immediately get a segmentation fault during the next cull. The
>models are valid and according to performer are loaded correctly. I
>check to ensure that there are no NULL pointers. I've tried it using a
>single process, as well as splitting it into app, cull, draw and compute
>processes. I linked to the debug libraries and it seems to be dying in
>the _pfCuller::pf_getGSetStateCullPgm function. Under the debug
>libraries, it looks like the pfString and pfBillboard pointer arguments to
>this function is NULL. I don't know if this is allowed since this code
>is part of the closed source part of Performer. I've attached the
>information from gdb, I don't know if someone might be able to see
>something obvious in the dump. Anyway, any help provided will be greatly
>appreciated, I've been fighting this problem for a month and I'm really
>stuck. Thanks.
>
>Program received signal SIGSEGV, Segmentation fault.
>[Switching to Thread 16384 (LWP 4823)]
>0x404f3562 in _pfCuller::pf_getGSetStateCullPgm(pfGeoSet*, pfBillboard*,
>int, pfString*) (this=0x42fb5778, gset=0x543e4750,
> bb=0x0, bbid=0, str=0x0) at ../pfLists.h:1255
>1255 ../pfLists.h: No such file or directory.
> in ../pfLists.h
>(gdb) where
>#0 0x404f3562 in _pfCuller::pf_getGSetStateCullPgm(pfGeoSet*,
> pfBillboard*, int, pfString*) (this=0x42fb5778,
> gset=0x543e4750, bb=0x0, bbid=0, str=0x0) at ../pfLists.h:1255
>#1 0x404f25eb in _pfCuller::addCullPgm(pfGeoSet*) (this=0x42fb5778,
> gset=0x543e4750) at ../pfCuller.C:593
>#2 0x40495a1a in pfGeode::nb_cullProgram(int, int, _pfCullPgInfo*,
> _pfCuller*) (this=0x543ec9d0, cullMode=7, cullResult=3,
> cullPgInfo=0xbfff4e80, trav=0x42fb5778) at ../pfLists.h:226
>#3 0x40498ee0 in pfGroup::nb_cullProgram(int, int, _pfCullPgInfo*,
> _pfCuller*) (this=0x41a94120, cullMode=7, cullResult=3,
> cullPgInfo=0xbfff4f50, trav=0x42fb5778) at ../pfBuffer.h:275
>#4 0x4047b4a4 in pfDoubleSCS::nb_cullProgram(int, int, _pfCullPgInfo*,
> _pfCuller*) (this=0x41a93f08, cullMode=7,
> cullResult=3, cullPgInfo=0xbfff5010, trav=0x42fb5778) at
> ../pfBuffer.h:275
>#5 0x4047b4a4 in pfDoubleSCS::nb_cullProgram(int, int, _pfCullPgInfo*,
> _pfCuller*) (this=0x41a2df78, cullMode=7,
> cullResult=3, cullPgInfo=0xbfff50d0, trav=0x42fb5778) at
> ../pfBuffer.h:275
>#6 0x404c90e1 in pfScene::nb_cullProgram(int, int, _pfCullPgInfo*,
> _pfCuller*) (this=0x41a2bb40, cullMode=7, cullResult=3,
> cullPgInfo=0xbfff5190, trav=0x42fb5778) at ../pfBuffer.h:275
>#7 0x404f1587 in _pfCuller::nb_cull() (this=0x42fb5778) at
> ../pfCuller.C:405
>#8 0x4050d6b5 in beginDraw (binFlag=0) at ../pfProcess.C:8473
>#9 0x4050d7ac in pfDraw () at ../pfProcess.C:8533
>#10 0x0805aa25 in drawFunc(pfChannel*, void*) (chan=0x42f775c8, data=0x0)
> at mitl_otw.cc:557
>#11 0x40460953 in pfChannel::pf_callDrawFunc() (this=0x0) at
> ../pfBuffer.h:275
>#12 0x4050d3fc in doDraw(pfChannel*, pfPipe*, int*) (drawChan=0x42f775c8,
> cPipe=0x3, itime=0xbfffdba8)
> at ../pfProcess.C:8381
>#13 0x40509876 in appCullDraw (startV=2014) at ../pfProcess.C:5802
>#14 0x4050a90a in pfFrame () at ../pfProcess.C:6345
>#15 0x0805b364 in main (argc=1, argv=0xbfffe5a4) at mitl_otw.cc:838
>#16 0x410ed8ae in __libc_start_main () from /lib/libc.so.6
>
>
>Ken Sewell Defense Research Associates
>Project Engineer 3915 Germany Lane, Suite 102
>937-431-1644 Beavercreek, Ohio 45431-1608
>sewell++at++dramail.com
>
>-----------------------------------------------------------------------
> List Archives, Info, FAQ: http://www.sgi.com/software/performer/
> Open Development Project: http://oss.sgi.com/projects/performer/
> Submissions: info-performer++at++sgi.com
> Admin. requests: info-performer-request++at++sgi.com
>-----------------------------------------------------------------------
>
>
>
>

-- 
Paolo Farinelli                                           paolo++at++sgi.com
Member of Technical Staff, OpenGL Performer              1-650-933-1808
Silicon Graphics        1600 Amphitheatre Pkwy, Mountain View, CA 94043


Date view Thread view Subject view Author view

This archive was generated by hypermail 2b29 : Mon Aug 18 2003 - 18:57:50 PDT