1.7.1 release

If you mean from Ubuntu repository, I did and I get the same segfault.

If you mean from Panda repository, I can not find it.

Can you get a gdb stack trace for the crash?

Here it is:


It looks to me like a bug in your graphics drivers. But can you please remove the code from your posts and use a pastebin (or something similar) next time? Having such long posts make the thread very hard to read normally.

Ubuntu 10.04 here.
Can’t find pdeploy and packp3d commands anymore in panda3d 1.7.1
Is it possible they are missing for linux version? they was here on 1.7.0

Best regards

I changed my earlier posts using your suggestions. Thank you.

By the way, I found this thread in Panda3D forums:

[url]segfault with panda3d]

The SEGFAULT reported in this post has (I think) the same cause.

Panda 1.7.0 worked fine. I wonder what is the difference between Panda 1.7.0 and 1.7.1 that causes this…

I will try to dig in a little bit…

Hmm… they should be there. I missed them in the first builds, but then I corrected my mistake. Perhaps something went wrong there.

In any case, you can also get those tools from runtime.panda3d.org/ (with the *.p3d extensions). You need to set executable permissions on those files (“chmod +x *.p3d”) before you can run them.

i am happy that the new version finally arrived :slight_smile:

pdeploy and packp3d are there in Windows version…

Understood what was the problem.
First time I installed sdk from repository (archive.panda3d.org)
I believe deb file on that repository is not up to date because I re-installed the sdk by downloading it from website and now pdeploy and packp3d are here again.

Hi i am more of an lurker and i actually registered so i can keep track of posts.

Anyways is there going to be a panda that is compatible with Ubuntu 10.10 in the future? because when i try to install 1.7.1 i get an error

“Dependency is not satisfiable: libavutil49 (>= 4:0.5.1-1)|libavutil-extra-49 (>= 4:0.5.1-1)”

i suppose this is on purpose because lucid is 10.04.

what options do i have?

also hi all :smiley:

There are Maverick packages in the downloads.

Thanks man :smiley: i could not understand how i could’ve missed even though i actually “looked through it again” but this is what happens when i don’t concentrate i make the silliest mistakes ever :blush:

again thanks! and i think i need some sleep now…

Ah, all right. I’ll look into it sometime soon and update the package, and I’ll fix the Cg dependency while I’m at it.

I believe I tracked the SEGFAULT to line 201 of:


which is:

glXMakeCurrent(_display, _xwindow, glxgsg->_context);

I think the glxgsg->_context is NULL here and it causes the SEGFAULT in the subsequent MESA calls.

I do not know if this is the right forum to continue on this issue.

Please let me know if I should move to some other forum.

Thank you,

That’s normal. From the reference:


But following the stack this NULL pointer causes this conditional to fire in MESA’s glxcurrent.c line 227:

  if (gc == NULL && (draw != None || read != None)) {
      __glXGenerateError(dpy, gc, (draw != None) ? draw : read,
                         BadMatch, X_GLXMakeContextCurrent);
      return False;

Here gc is the NULL context.

But since this condition is expected (otherwise there would not be a conditional to test for it) it should not generate SEGFAULT by itself.

I now realised this:

The above conditional fires if gc is NULL (plus the AND part). Then gc is passed to __glXGenerateError and cast to glx_context (brrrrrrr). Then inside __glXGenerateError it is referenced:

static void
__glXGenerateError(Display * dpy, struct glx_context *gc, XID resource,
                   BYTE errorCode, CARD16 minorCode)
   xError error;

   error.errorCode = errorCode;
   error.resourceID = resource;
   error.sequenceNumber = dpy->request;
   error.type = X_Error;
   error.majorCode = gc->majorOpcode;
   error.minorCode = minorCode;
   _XError(dpy, &error);

So bit seems like a NULL pointer being referenced causing SEGFAULT. Do I miss something?


So basically, if I understand this correctly: it should pass None instead of _xwindow, like:

if (glxgsg->_context == NULL) {
  glXMakeCurrent(_display, None, NULL);
} else {
  glXMakeCurrent(_display, _xwindow, glxgsg->_context);

Can you verify if that works? I don’t have a Panda3D installation with X11 handy.

Will the buildbot return?

As soon as I find time to fix it.