RE: [info-performer] Multipipe Initialization

Date view Thread view Subject view Author view

From: Christopher D. Johnson (cubicwts++at++excite.com)
Date: 10/07/2005 07:00:11


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!


Date view Thread view Subject view Author view

This archive was generated by hypermail 2b29 : Fri Oct 07 2005 - 07:06:29 PDT