From: Dick Rous (dick++at++sgi.com)
Date: 10/07/2005 08:43:18
OpenPipeWin and all calls to the graphics context should be done from
the DRAW process.
You try to overcome this need by executing the CULL and the DRAW in the
APP process space, but that prevents you from using multiple pipewins.
Look at the Performer example code how to create the proper DRAW an CULL
contexts.
(/usr/share/Performer/src/pguide/libpf/C/multipipe.c)
Dick.
> -----Original Message-----
> From: Christopher D. Johnson [mailto:cubicwts++at++excite.com]
> Sent: Friday, October 07, 2005 16:00
> To: Dick Rous
> Cc: info-performer++at++sgi.com
> Subject: RE: [info-performer] Multipipe Initialization
>
>
> As soon as I do multiprocess as you state what happens is
> when I do my X-call to XSync I get the X "Bad Window" error.
>
> dsp = mttGlobal->dsp = pfGetCurWSConnection();
> mttGlobal->winLOWER = pfGetPWinWSWindow(mttGlobal->pwinLOWER);
>
> XSelectInput(mttGlobal->dsp,mttGlobal->winLOWER,KeyPressMask
> | ButtonPressMask );
> XMapWindow(mttGlobal->dsp,mttGlobal->winLOWER);
> XSync(mttGlobal->dsp,FALSE); // program fails here
>
>
> If I remove the above catch of the X display etc., it goes
> through and then hits my "createScene" routine, which is
> wehre I start loading my terrain and come up with a pfNode *
> pTerrain pointer.
>
> extern pfGroup *
> CreateTerrain (float cf)
> {
> pfGroup **pCells = NULL; /* Array to store the cells of
> the terrain */
> pfGroup *pTerrain = pfNewGroup();
> int lcv = 0, iNumCells = 0;
>
> pfFilePath("../data/terrain/");
> iNumCells = iLoadTerrainCells(&pCells);
>
> for(lcv = 0; lcv < iNumCells; lcv++) {
> pfAddChild(pTerrain, pCells[lcv]);
> }
> pfFree(pCells);
>
> /* */
> pfAddChild(pTerrain, CreateFarPlane(cf));
> pfAddChild(pTerrain, CreateHoriz(cf));
> pfAddChild(pTerrain, CreateSky(cf));
> /* */
> pfdMakeShared((pfNode*)pTerrain);
> pfdCombineLayers((pfNode *)pTerrain);
>
> return pTerrain;
> }
>
> Everything runs and loads fine until I hit the last line
> before return, "pfdCombineLayers((pfNode *)pTerrain);". The
> program then again fails and says the following:
>
> "X Error of failed request: GLXBadDrawable
> Major opcode of failed request: 145
> Minor opcode of failed request: 11 (X_GLXSwapBuffers)
> Serial number of failed request: 41
> Current serial number in output stream: 162"
>
> Seems the call to pfdCombineLayers still causes hang ups and
> I have something evil going on with my GLXSwapBuffers.
>
>
> Christopher D. Johnson
> AV-8B Harrier II Simulators
> ISEO Support Team
> Cherry Point, NC
> 252-466-4542
> 252-466-4538
>
> --- On Fri 10/07, Dick Rous < dick++at++sgi.com > wrote:
> From: Dick Rous [mailto: dick++at++sgi.com]
> To: paolo++at++sgi.com, cubicwts++at++excite.com
> Cc: info-performer++at++sgi.com
> Date: Fri, 7 Oct 2005 11:14:10 +0100
> Subject: RE: [info-performer] Multipipe Initialization
>
> Hi Christopher,<br><br>You also might check your
> multi-processing mode.<br>Your call to pfMultiprocess
> (pfMultiprocess(PFMP_FORK_DBASE |<br>PFMP_FORK_LPOINT);),
> means that you do not fork the CULL and DRAW<br>processes, a
> must for dealing with multiple screens. <br>Try
> pfMultiprocess(PFMP_APP_CULL_DRAW | PFMP_FORK_DBASE
> |<br>PFMP_FORK_LPOINT);<br><br>My .02
> euro.<br><br>Dick.<br><br>> -----Original Message-----<br>>
> From: owner-info-performer++at++performer.engr.sgi.com <br>>
> [mailto:owner-info-performer++at++performer.engr.sgi.com] On <br>>
> Behalf Of Paolo Farinelli<br>> Sent: Thursday, October 06,
> 2005 21:39<br>> To: Christopher D. Johnson<br>> Cc:
> info-performer++at++sgi.com<br>> Subject: Re: [info-performer]
> Multipipe Initialization<br>> <br>> <br>> Hi
> Christopher,<br>> <br>> What happens if you try to run
> 'perfly esprit.pfb' on<br>> your system when it is configured
> as 2 X-screens?<br>> <br>> If perfly does not work, pls set
> PFNFYLEVEL to 8 and<br>> collect some output for me to look
> at. If possible,<br>> you could also try to grab some
> call-stack data<br>> using gdb.<br>> <br>> If perfly does
> work, then I suggest you strip down<br>> your application
> code to the bare minimum and work your<br>> way up to see
> where things start breaking.<br>> In particular, the Xcalls
> you make in the APP process<br>> look suspicious:<br>> <br>>
> >
> XSelectInput(mttGlobal->dsp,mttGlobal->winLOWER,KeyPressMask
> | <br>> > ButtonPressMask );<br>> >
> XMapWindow(mttGlobal->dsp,mttGlobal->winLOWER);<br>> >
> XSync(mttGlobal->dsp,FALSE);<br>> <br>> Let me know how it
> goes.<br>> Regards,<br>> Paolo<br>> <br>> <br>> <br>> On Thu,
> 6 Oct 2005 14:01:20 -0400 (EDT), Christopher D. Johnson
> <br>> <cubicwts++at++excite.com> wrote:<br>> <br>> ><br>> >
> Jason-<br>> ><br>> > I am going to take a step back from my
> "multiscreen" view <br>> and see about <br>> > attacking the
> problem with one "screen" covering both LCD <br>> displays,
> ie <br>> > setting up my system with one "screen" instead of
> 2..<br>> ><br>> > So far I have one pipe, with two windows
> attached to it and <br>> channels set <br>> > in the
> windows. I have noticed that when I created the 2nd <br>>
> window, what <br>> > gets displayed in each window now looks
> "funky", with <br>> colors being off <br>> > and some things
> not showing up or updating. What else needs <br>> to be done
> <br>> > to get 2 windows to "play nice"? I've read about
> <br>> pfPWinShare() and the <br>> > associated funcitons but
> don't have an example of how configuring, <br>> >
> framebuffering, and relying on calls to pfFrame() should be
> <br>> set up. I <br>> > suspect that may be my problem.<br>>
> <br>> -- <br>> Paolo Farinelli <paolo++at++sgi.com><br>>
> OpenGL|Performer - Silicon Graphics Inc.<br>> <br>>
> --------------------------------------------------------------
> <br>> ---------<br>> 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<br>>
> Admin. requests: info-performer-request++at++sgi.com<br>>
> --------------------------------------------------------------
> <br>> ---------<br>> <br>
>
> _______________________________________________
> Join Excite! - http://www.excite.com
> The most personalized portal on the Web!
>
>
>
This archive was generated by hypermail 2b29 : Fri Oct 07 2005 - 08:49:38 PDT