Index: [thread] [date] [subject] [author]
  From: James Simmons <jsimmons@edgeglobal.com>
  To  : ggi-develop <ggi-develop@eskimo.com>
  Date: Sun, 25 Apr 1999 08:43:54 -0400 (EDT)

XFree86-3D-status: a FAQ (fwd)

Take a look at the ggi section.

"My grandfather once told me that there are two kinds of people; those who
work and those who take credit. He told me to try to be the first group;
there was less competition there."  -Indira Gandhi

James Simmons                            
System Admin EdgeNet Inc                
Linux Kernel Developer                    
jsimmons@edgeglobal.com                   
http://www.edgeglobal.com/~jsimmons

---------- Forwarded message ----------
Date: Sun, 25 Apr 1999 00:00:05 +0100
From: Dr Andrew C Aitchison <A.C.Aitchison@dpmms.cam.ac.uk>
To: xfree86-3d@cs.utah.edu
Subject: XFree86-3D-status: a FAQ


This isn't an official FAQ for the XFree86-3D list, but it does attempt to
answer many of the questions that are asked on the list.

	http://www.dpmms.cam.ac.uk/~werdna/XFree86-3D-status.html

Dr. Andrew C. Aitchison         Computer Officer, DPMMS, Cambridge
A.C.Aitchison@dpmms.cam.ac.uk   http://www.dpmms.cam.ac.uk/~werdna
------------------------------------------------------------------

                           XFree86 3D Status Report
                                       
   A number of newsgroups and mailing lists have frequent requests for
   information about hardware-accelerated 3D graphics on Linux,
   FreeBSD/OpenBSD/NetBSD and other (usually Unix) platforms which run
   the XFree86 X server; I've decided that it is time to collate a
   pre-prepared answer. Throughout this document I shall refer to Linux;
   usually the same will be true for FreeBSD/OpenBSD/NetBSD and sometimes
   also for OS/2 running XFree86.
   
3D graphics for Unix / X windows

   There are 2 standards for 3D graphics on X window platforms; X3D-PEX,
   and OpenGL.
   
   X3D-PEX, sometimes called PEX-5, is a version of the Phigs 3D graphics
   library, extended to form an extension to the X-server. Is almost
   obsolete.
   
   OpenGLŪ was developed by Silicon Graphics from their IRIX GL language,
   and is a registered trademark of Silicon Graphics, Inc. They have made
   the specification (but not an implementation) freely available, so
   that developers are not at the mercy of incompatible implementations
   from different vendors. The official OpenGL web site is
   [1]http://www.opengl.org/. Silicon Graphics also have a useful OpenGL
   web page at [2]http://www.sgi.com/Technology/openGL/.
   
   OpenGL started life on X windows systems; in such setups it is common
   to run a program on one machine, but have the display appear on
   another. There is thus an extension to X windows, called GLX, which
   allows OpenGL requests to be efficiently packaged as X requests.
   
Commercial 3D for Linux

   Xi Graphics produce Accelerated-X/OGL
   [3]http://www.xig.com/Pages/3D%20AX%20Page.html. This is a Technology
   Demo and distrubution is limited to serious developers and certain key
   organizations.
   
   Metro Link produce Metro OpenGL 1.3
   [4]http://www.metrolink.com/opengl/index.html, which includes "One
   FREE Upgrade when Hardware Acceleration is Released". Metro Extreme 3D
   [5]http://www.metrolink.com/extrem3d.html will provide this hardware
   acceleration. An Early Access Release For 3DLabs Glint Chips is now
   available - see [6]http://www.metrolink.com/press/eae3dpress.html
   
Mesa

   OpenGLŪ is a registered trademark of Silicon Graphics, Inc., who quite
   reasonably only licence the name to be used by products which have
   been tested to comply with the specification. Since testing costs
   money, there are no free licenced versions of OpenGL. However for
   anyone looking for a freely available library which utilizes the
   OpenGL command syntax or state machine Brian Paul's library Mesa
   [7]http://www.mesa3d.org/, is the first choice. It is freely available
   in all the usual free software meanings; see
   [8]http://www.mesa3d.org/#Disclaimer for the legal statement of
   compatibility.
   
   Mesa runs under Microsoft operating systems as well as most Unix
   systems. For Linux it can run either on your X server or on the
   console using SVGAlib. The only down-side to Mesa is that it runs in
   software only on most systems; see [9]http://www.mesa3d.org/#Hardware
   for the 3D hardware which can accelerate Mesa.
   
  Hardware Acceleration for Mesa: 3Dfx Voodoo
  
   The 3DFx Voodoo, Voodoo-Rush and Voodoo2 only do 3D acceleration, so
   another graphics chip (which is often on another graphics card) does
   the 2D work. Mesa can use the combination of 2D and 3D chips in2
   different ways.
   
   The simplest way is for the OpenGL application to take over the full
   screen, thus no 2D work is needed.
   
   Alternatively, if you want OpenGL in a window, the Voodoo and Voodoo-2
   can draw the picture in their frame-buffer, and then have Mesa copy
   the picture back to the X server screen. Although the copy is
   relatively slow, this is still faster than software only rendering on
   all but the fastest CPUs. Brian implemented this as a hack, and was
   surprised how well it works; it has even been able to accelerate 2
   different windows simultaneously under certain conditions.
   
   The Voodoo Rush supports rendering into windows directly (ie without
   copying the data back to the 2D system).
   
   The latest versions of the Glide library are available at
   [10]http://glide.xxedgexx.com/3DfxRPMS.html and include an X server
   for AT3D /VoodooRush based systems, apparently based on the XFree86
   3.3.2 SVGA server.
   
   The 2.2 Linux kernel (and the latest 2.1.x kernels) include a device
   driver for /dev/3dfx that allows Glide applications to run without
   root privileges. More details are at the 3DfxRPMS page above. In
   addition 3Dfx have a private news group on
   [11]news://news.3dfx.com/3dfx.linux.dev.glide (this address used to be
   [12]news://news.3dfx.com/3dfx.glide.linux). Steve Baker tells me that
   this is where most of the action is for stuff like /dev/3dfx. If you
   are a Linux/Mesa/3Dfx user, you should certainly look at that news
   feed once in a while.
   
  Hardware Acceleration for Mesa: other hardware
  
   Systems based on the 3Dfx Voodoo have 2 graphics chips: the Voodoo and
   a 2D chip. With this design the X server can have exclusive use of the
   2D chip and Mesa can have exclusive use of the Voodoo. However, many
   other 3D graphics cards have the 2D and 3D parts on the same chip, but
   having 2 different programs talking to the same chip at the same time
   is likely to cause confusion unless the programs synchronize and
   coordinate their actions.
   
   S3 provide a library for MS Windows which allows Mesa and MS Windows
   to synchronize access to the chip. Someone from S3 has suggesting that
   he might port this library to XFree86 in his spare time, but until
   then Mesa/S3/3D hardware acceleration only works under MS Windows.
   Many other manufacturers provide an OpenGL driver for MS Windows
   (usually Windows NT, sometime Windows 95) so are less interested in
   supporting Mesa.
   
   See below for news of a prototype GLX module which supports the
   Permedia 2 chip.
   
   The GGI project [13]http://www.ggi-project.org/ aims to provide a
   software layer underneath the X server and Mesa which talks to the
   hardware and could resolve conflicts between them; this is the same
   approach that SGI use on many of their systems. From Mesa version 3,
   GGI support is included as standard. XGGI is an X server which runs on
   top of GGI; as of 27th Dec. 1998 it "still needs more work". GGI has
   developed a lot since I wrote the following section, including some
   integration into the latest Linux kernels. I ought to reexamine it -
   it may now be a viable alternative to the XFree86 / GLX approach
   described below.
   
GLX and XFree86

   Most people on Linux systems are using XFree86. The obvious way to get
   Mesa working with XFree86 is to use Mesa as the basis for a GLX module
   for XFree86; since this turns 2 programs into one, synchronising
   access to the graphic hardware is simplified.
   
    Team 1
    
   The first step is to get a software GLX module running; Steve Parker
   [14]http://www.cs.utah.edu/~sparker/xfree86-3d/ started this effort by
   produced a version of Mesa
   [15]http://www.cs.utah.edu/~sparker/xfree86-3d/download/ which
   includes the GLX protocol. With this an SGI should be able to display
   OpenGL directly onto a Linux box, although I have never tried it (with
   the standard Mesa I believe you need to run Mesa on the SGI). Henry
   Worth converted this into an OpenGL XFree86 module which was developed
   first by Simon Pogarcic of SuSE ([16]/http://www.suse.de/~sim/), and
   then Terence Ripperda [17]http://reality.sgi.com/ripperda_engr/glx
   
   With support from Elsa AG, Simon Pogarcic and David Bucciarelli have
   designed an API [18]http://www.suse.de/~sim/aclapi.txt.pl and a
   library - MLX [19]http://www.suse.de/~sim/mlx.html which are intended
   to clarify writing hardware support for Mesa and GLX. A first
   pre-alpha implementation for Permedia 2 graphic cards is available at
   [20]ftp://ftp.suse.com/pub/projects/3d/mlxlib/.
   
   The team are working on a driver for the Matrox G200, and have a
   mailing list; subscribe by mailing
   [21]g200-dev-request@lists.on.openprojects.net with "subscribe" in the
   message body.
   
    Team 2
    
   Precision Insight, supported by Red Hat, have a Direct Rendering
   Infrastructure project
   ([22]http://www.precisioninsight.com/DRI021699.html) based on Mesa,
   which is scheduled to be released back into XFree86 in June 1999.
   
   This infrastructure will fully support direct hardware rendering into
   multiple X windows. The sample implementation (SI) of this
   infrastructure will support MESA in software only, and will contain a
   limited set of hardware accelerated functions to demonstrate how
   complete hardware support can be added for any 3D hardware. See
   [23]http://www.precisioninsight.com/dr/dr.html for the technical
   details.
   
   Silicon Graphics have released their GLX source code; press release at
   [24]http://www.sgi.com/newsroom/press_releases/1999/february/opengl.ht
   ml and full details at
   [25]http://www.sgi.com/software/opensource/glx/, and are working with
   Precision Insight to enhance the GLX source code for use with XFree86.
   
   It is interesting to see that rival commercial Linux distributors
   RedHat and SuSE are both involved in integrating Mesa and XFree86. I
   hope that two teams gives us a strong product or products, and that we
   don't end up with hurt feelings and stretched resources.
   
   Putting OpenGL and XFree86 into a single process (single-threaded)
   gives a much more sluggish response than the original Mesa library,
   although the rendering speed is not noticeably altered. A
   multi-threaded version of the X server should make the server
   responsive again.
   
  Hardware implementations of the GLX module
  
    Matrox Millennium and Mystique
    
   Thomas Götz ( German: [26]http://www.jura.uni-tuebingen.de/~goetz/,
   English: [27]http://www.jura.uni-tuebingen.de/~goetz/indexeng.html)
   has added hardware acceleration for the Matrox Millennium and
   Mystique. This is a "design-check", not production code, but I've had
   it working successfully in single window mode on my Millennium, and
   I've heard rumours that this module runs on a Matrox G200 (and is
   faster than software Mesa). If true this rumour would prove that the
   G200 is compatible with the previous generation of Matrox 3D commands.
   
    A NASA Project
    
   According to [28]http://parallel.nas.nasa.gov/Parallel/Projects/FOGL/
   there is a NASA project to get OpenGL on free Unixes. Nothing was
   ready to release when I read the page in February 1999.
   
  Mesa and Microsoft Operating Systems
  
   While Mesa build and run on Microsoft Operation Systems (DOS and
   Windows 3.x/95/98/NT) there are many different development
   environments (compilers) in use on them, and each one appears to
   require separate support. Since Microsoft and Silicon Graphics both
   provide OpenGL on some of these OSes, Brian has not made this a high
   priority. Alt.Software [29]http://www.altsoftware.com/Fopengl.html
   have used Mesa to add OpenGL support on top of DirectX 6, thus making
   it available on any 3D hardware supported by these operating systems.
   
  Managing Graphics Hardware Vendor Relationships in the Linux Developer
  Community
  
   Finally, can I encourage all Open Software developers to read this
   paper by Frank LaMonica of Precision Insight Inc.
   ([30]http://www.precisioninsight.com/alspaper.html).
     _________________________________________________________________
   
   
    [31]A.C.Aitchison@dpmms.cam.ac.uk
    
   Last modified: Wed Mar 31 07:33:54 1999

References

   1. http://www.opengl.org/
   2. http://www.sgi.com/Technology/openGL/
   3. http://www.xig.com/Pages/3D%20AX%20Page.html
   4. http://www.metrolink.com/opengl/index.html
   5. http://www.metrolink.com/extrem3d.html
   6. http://www.metrolink.com/press/eae3dpress.html
   7. http://www.mesa3d.org/
   8. http://www.mesa3d.org/#Disclaimer
   9. http://www.mesa3d.org/#Hardware
  10. http://glide.xxedgexx.com/3DfxRPMS.html
  11. news://news.3dfx.com/3dfx.linux.dev.glide
  12. news://news.3dfx.com/3dfx.glide.linux
  13. http://www.ggi-project.org/
  14. http://www.cs.utah.edu/~sparker/xfree86-3d/
  15. http://www.cs.utah.edu/~sparker/xfree86-3d/download/
  16. http://www.suse.de/~sim
  17. http://reality.sgi.com/ripperda_engr/glx
  18. http://www.suse.de/~sim/aclapi.txt.pl
  19. http://www.suse.de/~sim/mlx.html
  20. ftp://ftp.suse.com/pub/projects/3d/mlxlib/
  21. mailto:g200-dev-request@lists.on.openprojects.net
  22. http://www.precisioninsight.com/DRI021699.html
  23. http://www.precisioninsight.com/dr/dr.html
  24. http://www.sgi.com/newsroom/press_releases/1999/february/opengl.html
  25. http://www.sgi.com/software/opensource/glx/
  26. http://www.jura.uni-tuebingen.de/~goetz/
  27. http://www.jura.uni-tuebingen.de/~goetz/indexeng.html
  28. http://parallel.nas.nasa.gov/Parallel/Projects/FOGL/
  29. http://www.altsoftware.com/Fopengl.html
  30. http://www.precisioninsight.com/alspaper.html
  31. mailto:A.C.Aitchison@dpmms.cam.ac.uk

Index: [thread] [date] [subject] [author]