Subject: GLXPixmaps and glXMakeCurrent().
To: None <tech-x11@netbsd.org>
From: Richard Rauch <rkr@olib.org>
List: tech-x11
Date: 03/21/2004 02:54:20
I don't know if this is more of a -current or a tech-x11 issue, but
tech-x11 has lower traffic and probably more people who know their
way around X's internals.  (^&

I was starting to experiment with using GLXPixmaps for offscreen
OpenGL rendering.  I don't have a trivial example, but may be able
to cobble one together if that will help.

Over the last week, I upgraded my system from a December 18
XFree86 "RC2" source tree to the in-tree 4.4 release that
NetBSD recently imported.  And GLXPixmaps seem to be more
or less broken by that.

In addition to now using the (presumably nearly-identical)
4.4 server, another difference is that I had to build
4.4 from the xsrc Makefile (which resulted in a slower-
loading static X server); I believe that previously, I
used the "raw" XFree86 sources and got a dynamic-linked
server for the "4.4RC2".  I have not yet tried grabbing
raw 4.4 sources and building a new server with them.

The specific failure is happening on the *second* call to
glXMakeCurrent().  When it fails, the X server dies
with a signal 11.

I have one program compiled on an AMD64 that provokes this.
It crashes the local X server when I run it.  It also crashes
my laptop's X server (also 4.4) when I run the program over a
network.

On the other hand, when I run the same program (on the AMD64)
but talk to an X server running on CygWIN (using an install from
around August of last year), the CygWIN server is okay.


I have not (yet) tried building and running the client program
on the i386 laptop to see if there's any chance that that will
make the problem go away.  (But the X server shouldn't crash
just because of a bad GLX request.  (^&)

I'm not familiar with the X sources, and don't even know if
I should be looking under "xc" or "xfree" to find the correct
set of sources.


Summary:

 * A week ago, with what should have been an almost-4.4
   X server, this worked.  (It is *possible* that I had
   reinstalled X from the 4.3 import.  X has been a
   rough ride with the AMD64 so I've tried a number of
   things.  But by and large I've tried to stay current
   and use NetBSD-imported bits in the name of testing.)
 * It kills X in glXMakeCurrent() on a second invocation
   (first seems to succeed).
 * I used the xsrc/Makefile directly for NetBSD's import,
   rather than build.sh.


-- 
  "I probably don't know what I'm talking about."  http://www.olib.org/~rkr/