[lsb-discuss] Specification of OpenGL interfaces

Jon Leech jon at alumni.caltech.edu
Wed Sep 19 14:10:01 PDT 2007


On Wed, Sep 19, 2007 at 07:12:26AM -0700, Wichmann, Mats D wrote:
> lsb-discuss-bounces at lists.linux-foundation.org wrote:
> > LSB refers the "OpenGL Application Binary Interface for Linux" [1]
> > regarding all OpenGL interfaces.
> >
> > [1] http://oss.sgi.com/projects/ogl-sample/ABI/
> >
> > But this link does not give any hint about usage of OpenGL interfaces.
> >
> > I have found several places containing some descriptions:
> >
> > http://www.opengl.org/documentation/specs/man_pages/hardcopy
> > http://www.opengl.org/sdk/docs/man/
> > http://www.opengl.org/documentation/specs/
> >
> > The question is which of them (or may be something else) we will make
> > the "LSB-canonical" description of OpenGL interfaces?

    The formal definition of OpenGL is the API Specification, which is
reached from www.opengl.org/documentation/specs/ . For a fully realized
OpenGL implementation, this needs to be combined with the OpenGL Shading
Language Specification (for OpenGL 2.0 or later implementations), the
GLX 1.4 Specification (GLX is included in libGL), and the GLU 1.3
Specification (libGLU). The C-language API bindings are encoded in the
headers under www.opengl.org/registry/ - the core OpenGL Specification
defines bindings in an abstract C-like syntax.

    The man pages are not canonical. Also, the
documentation/specs/man_pages/hardcopy link you mention is, or at least
should be dead - the up-to-date man pages are in sdk/docs/man/ .

    Which specification document to use depends on which version(s) of
the API LSB will mandate runtime and linktime support for. These do not
have to necessarily be the same API version; between the loadable driver
model and the desire to support older hardware, the appropriate course
of action is probably to mandate OpenGL 2.1 support at linktime,
possibly including some ARB-approved OpenGL extensions as well, but only
OpenGL 1.4 or 1.5 at runtime. It depends on how much older graphics
hardware you want to exclude.

    I'm willing (as the original author of the ABI) to help out with
this. If people want to update the ABI document as a standalone thing
and continue to refer to it from the LSB spec, I will own that. The ABI
needs to be moved off of oss.sgi.com in any event, since SGI is
completely out of the graphics business and there's nobody left there to
maintain that content. If it continues as a standalone document, I don't
know what the approval process would be for an update.

    If people want to fold it into LSB documents, someone else will have
to do the writing - but I'm willing to advise and liase with the OpenGL
ARB working group of Khronos as needed.

    This topic has come up many times before and always ground to a halt
for lack of participation after the initial query to the LSB list. The
major decisions to be made are only to figure out what API versions to
support. Is there an LSB process for calling a vote on decisions like
these? It is not hard to get data from NVIDIA, AMD/ATI, Intel, and
Tungsten Graphics / Mesa on how much hardware cannot support a
particular version of the API, and that could inform the decision.

    Jon





More information about the lsb-discuss mailing list