The only significant unresolved issue in the oglbase specification
is threadsafety (section 3.7). Unfortunately, the traditional SGI way of
doing this is clearly unacceptable to the Linux kernel guys at this
time, so the significant overhead of pthread_getspecific() appears
unavoidable for multithreaded apps.
However, Brian has been doing some experiments with a dispatcher
that recognizes when the app goes multithreaded and only switches to the
threadsafe calls at that time, so dispatch overhead for single-threaded
apps should not be impacted very much.
So the answer seems to be that section 3.7 should require that there
is a single libGL library which is threadsafe - specifically, that an
arbitrary (implementation dependent) number of GL contexts may be
created and may be current to different threads simultaneously.
In regard to section 5 and glext.h - rather than trying to figure
out the superset of all extensions any implementation actually claims to
support, I instead spent a bunch of time assembling specfiles describing
every single OpenGL extension enumerant and entry point that's in the
official extension registry, and I'm finishing up a script that turns
those into a (rather lengthy) glext.h. I'll send out a sample shortly -
I'm under pressure for a ship deadline and don't have much time for
other stuff, but that will ease up next week.
Jon Leech
SGI