On Tue, 14 Nov 2000, Peter Jay Salzman wrote:

> i'm trying to consolidate what i know about hardware acceleration and
> graphics, and i'm going around in circles...
> 
> opengl is an API that allows a programmer to do 2D/3D graphics.  the most
> important implementation of opengl as far as we're concerned is mesa.   any
> given implementation may or may not be hardware accelerated.  the important
> point is that opengl is device independent.

Mesa is an OpenGL clone.  As far as OpenGL is concerned, it will try to
perform all operations in hardware, but it will execute them in software
if the hardware isn't capable.  So if the graphics card has ZBuffer but
not ABuffer, OpenGL will make use of the ZBuffer and will use software to
render ABuffer (I guess the OpenGL implementation could ignore all
ABuffer rendering if it deems translucency unimportant.)

> glide is another graphics API (which also happens to be an implementation
> since it's written solely by 3dfx graphics inc).   glide is NOT opengl,
> although some of its functions look like opengl.  glide functions make use
> of the hardware acceleration capabilities of voodoo boards.
> 
> mesa is a free implementation of opengl (leaving legalities out of the
> discussion.  it aims to be an opengl implementation).
>
> yet i've seen people say that mesa is also a drop-in replacement for glide.
> there are versions of mesa which have 3dfx drivers, which presumably use
> 3dfx acceleration.
==8<--

Don't know Glide or Mesa internals.  Sorry.

To my understanding, Mesa works on the hardware level whenever possible --
because Linux's implementation of OpenGL (Mesa) works faster than the SGI
O2's implementation of SGI (in the CS labs, anyway) and SGI implements
OpenGL in hardware.

However, apparently XFree lacks the GLX extension (the OpenGL extension
needed by GLUT... and maybe OpenGL calls themselves, too, I haven't
figured that part out yet.)

> now, DRI == direct rendering infrastructure allows X clients to write 3D
> rendering information to the video card.  this can be hardware accelerated
> or not.

Eh... don't know.

> glut is a windowing toolkit system, like gtk, but implements opengl.

There are four parts to OpenGL and its canonical extensions:

   GL - The OpenGL core calls.
   GLU - The utility calls
   GLUI - Utility interface (UI?) for buttons and checkboxes and a few
      other stuff.  Apparently GLUI doesn't come with Mandrake although
      everything else listed here comes with it.
   GLUT - Utility tools (UT).  For system-independent window event
      handling (mouse motion/click detection, keyboard strokes, program
      quit signal handling, etc.)  Also has some interface stuff that
      should have been included in GLUI, and I think it also has a
      built-in drawing sequence for a teapot (the same one in Toy Story :)
      so you can quickly test your OpenGL implementation.

> finally, utah glx is the device dependent opengl implementation for xfree86.

Yeah, GLX is an X extension for OpenGL.  I know it's necessary for GLUT
but I'm not sure if it's necessary for GL.  Apparently Linux (or XFree, I
guess) lacks the GLX extension because if I try to xhost an OpenGL
application off of the SGI's, I get the following error:

  GLUT: Fatal Error in viewer: OpenGL GLX extension not supported by
  display: sgi34:10.0

but I can xhost off of Linux boxes on SGIs just fine.  Mesa rules :)

-Mark

---
Mark K. Kim
http://www.cbreak.org/mark/
PGP key available upon request.

Reply via email to