Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 10 Sep 1999 02:24:28 +0200 (CEST)
From:      Marc van Woerkom <van.woerkom@netcologne.de>
To:        hasty@rah.star-gate.com, multimedia@FreeBSD.ORG
Subject:   Re: New 3D software available
Message-ID:  <199909100024.CAA02216@oranje.my.domain>
In-Reply-To: <Pine.BSF.4.10.9909090939360.2081-100000@salmon.nlsystems.com> (message from Doug Rabson on Thu, 9 Sep 1999 09:42:51 %2B0100 (BST))
References:   <Pine.BSF.4.10.9909090939360.2081-100000@salmon.nlsystems.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Doug:
  Amancio:
> > Say , since I have it running on -current + XFree86 4.0 with a Riva
> > TNT2 card got any ideas how can I add support for the 3d acceleration
> > stuff found in XFree86 4.0?
> 
> The 3D code in 3.9.16 is not quite ready for prime time. It only supports
> one card (an expensive Glint card) and the kernel component of the driver
> model hasn't been ported to FreeBSD.

My present attitude regarding to DRI is to wait for the XFree86 4 release, 
or some really close snapshot (which won't happen during the next 4 weeks)
and use the time in between to catch up, improving that parts that are
likely to stay and working on documentation.

Really sure I am only of the Mesa lib. I use the 3.0 from the ports
collection, but the 3.1 development version has seen many fixes lately,
and I want to get it running badly. In conjunction with this I need
some decent benchmark running too, like glperf.


> A better solution for now is to use Marc van Woerkom's port to build the
> TNT glx driver for XFree86 3.3.x. This works but isn't as fast as it
> should be due to the limited architecture (compared to what will be in
> 4.0).

Thanks to Jordan's article in FreeBSD'zine, I was able to get the
glx driver released by nvidia running on a RIVA 128 card with 
XFree86 3.3.3.1

   ftp://ftp1.detonator.nvidia.com/pub/drivers/english/riva-tnt-tnt2-vanta/linux/


I was so impressed that I put it into a port - for some reason it has 
never been committed to the ports tree, 

    http://www.freebsd.org/cgi/query-pr.cgi?pr=12661

maybe because I was too sloppy with deinstallation and package building
issues or none of the commiters wants to put in time until XFree86 4 shows 
up.


When I dived deeper into the subject, I found out that this nvidia package 
was a snapshot from an openproject.net effort who took an older 
free implementation effort of GLX and the then released Matrox specs
to create accelerated 3d for G200 cards.

nvidia's David Schmenk took a certain glx project snapshot and added a 
simple driver for nvidia RIVA 128/ZX/TNT/TNT2 cards.
This way nvidia's rivaglx-0.99 was born. 

Anyway, if you want that FreeBSD port, get it here:

   http://www.freebsd.org/~3d/distfiles/glx/XF3.3.3.1


This led to involvement in the glx and Mesa projects.
I took a more recent snapshot from glx and adapted it to XFree86 3.3.4
that came out in the meanwhile.

The snapshot is more complete than nvidia's and features Matrox 
G200/G400 support as well. 

Get this latest port here:

    http://www.freebsd.org/~3d/distfiles/glx/XF3.3.4


While this 3.3.4 port is more sane than the 3.3.3.1 and I got
positive test reports from Matrox users plus it ran on my new
TNT board, it didn't made it in the ports tree either.
OK this time I didn't submit it. :)

One of the various reasons was the release of XFree86 3.3.5,
which is mostly a bug fixed 3.3.4.

While I believe that the 3.3.4 glx.so should work together
with 3.3.5 too, I had no time to test it sufficiently.


Except for this test and the Mesa update, I should update
glx to a newer version, now (after the project server disaster)
as the tree looks sane again.

But this could be wasted time, because the openprojects.net
glx is expected to be replaced by a GLX from SGI!


So the only bit of that project that iw likely to stay (if 
Precision Insight does not write their own) is the matrox and 
nvidia drivers.


The nvidia driver is said to be not optimized yet.
It would "just" require to understand nvidia's released specs

    https://www.nvidia.com/nv/nvarch.nsf/Home?OpenView

to squeeze more performance out of it.

While Matrox activity is considerable (including John Carmack
happily hacking) nobody is presently working on improving
the nvidia driver. Personally I would rather continue porting
apps or go for something esoteric like Mesa NURBS trimming than 
that driver, before I not know what Precision Insight is up to. 


This brings me to the issue of porting.
Every new nice app is a win. I am glad QDraw runs nicely under
FreeBSD (rolling a port is on my list :) and am waiting eagerly 
what GEL will look like. 

Then we have Flight Gear and Space Racer, which need at least
some testing with the latest stuff.

While I got Myth2 running, I would love to have a foolproof
guide about setting up the Quake games under FreeBSD with
the latest glx. 

For glide we have this one:

  http://www.cybernet.com/~mtaylor/q3ahowto.html
  http://www.schrade.com/sanctum/freebsd/

and for aalib this one :)

   http://webpages.mr.net/bobz/ttyquake/
   http://webpages.mr.net/bobz/ttyquake/ss/TTYQuakeConsole.html


If that is not enough I got a mail from a GGI folks who complained
that we have not ported this non-X Mesa to FreeBSD. 

> Why are you guys
> not porting LibGGI, GGIMesa and KGI to xBSD?  All the code is free,
> unencumbered by the GPL (we changed our license specifically to make porting
> to xBSD possible) and works well now.  It is all designed from the ground up
> to be cross-platform, and I just recently wrote a GLX-to-GGIMesa API bridge
> which allows Quake III to run unmodified under XGGI.

This is something I will definitley look into this weekend. 
There goes another one.. :)


Because I think it is important to know a bit about the history of 
what happened -to make sense of all I started to write up a timeline doc 
with links - at work I keep a HTML version, but this isn't finished either. 
Probably this weekend. 


Here is what I got so far:


------
- GL -    [~1990?]
------

Aside from various academic efforts for a 3d API (like GKS) and special 
solutions (like in the field of CAD/CAM) a de-facto standard was established 
by Silicon Graphics [1] and its GL Graphics Library plus 
its line of IRIS UNIX workstations that were equiped with special hardware for 
fast GL rendering ("the more bucks, the more GL functionality cast into
silicon"). Today it is rather refered as IRIS GL to set it apart from OpenGL. 


----------
- OpenGL -    [1992]
----------

In 1992 SGI opened up GL by releasing OpenGL [2] and moving control to the
ARB [3] which present members are 3Dlabs, Compaq/Digital Equipment, Evans & 
Sutherland, Hewlett-Packard, IBM, Intel, Intergraph, Microsoft, Nvidia and SGI.
Note that GL and OpenGL differ slightly [4,5].


--------
- Mesa -    [Feb 1995]
--------

In 1995 Brian Paul [6] started work on the Mesa library. To cite [7]:
"Mesa is a 3-D graphics library with an API which is very similar to that of OpenGL. 
To the extent that Mesa utilizes the OpenGL command syntax or state
machine, it is being used with authorization from Silicon Graphics, Inc(SGI)." 


-----------
- GLQuake -    [1997?]
-----------

After starting the 3d shooter game genre (and PC 3d craze in general) with the 
technical brilliant (while ethical questionable) Wolfenstein 3d and topping it 
with titles like Doom, Doom II and Quake, id Software [8] created an OpenGL version 
of Quake, helping enourmously to fight Microsofts proprietary DirectX 3d API [9] 
from overtaking the PC market. 


---------
- Glide -    [March 1998]
---------

The first big step towards accelerated 3d for the free UNIX systems has been taken 
by 3dfx [10] who released the specs [9] to their Glide API for their Voodoo series 
of 3d only cards.
This led to a glide version of Mesa and finally a playable glquake [11, 12].


--------------------
- Open GLX efforts -    [Mid 1998]
--------------------

According to the XFree86 3D Status Report [13], efforts for an free 
implementation of GLX (the glue between OpenGL and the X windows system) 
started in 1998 with Steve Parker [14], then Henry Worth, Simon Pogarcic [15]
and Terence Ripperda [16]. In February the open glx project starts. [17]


----------
- Matrox -    [March 1999]
----------

The second big card maker, Matrox [18], released [19] specs to their G200 
cards.


----------
- nvidia -    [June 1999]
----------

Third of the big graphics board makers, nvidia releases an open source
driver for the glx project. Around the same time they provide specs.

(..)


References

 [1] sgi
     http://www.sgi.com

 [2] OpenGL Architecture Review Board (ARB)
     http://www.sgi.com/software/opengl/faq.html#15

 [3] OpenGL Architecture
     http://www.opengl.org/About/Architecture.html

 [4] OpenGL History
     http://www.sgi.com/software/opengl/glandx/intro/subsection3_1_2.html

 [5] OpenGL versus IRIS GL
     http://trant.sgi.com/opengl/docs/white_papers/ogl_vs_igl.html

 [6] Precision Insight Team (Brian Paul, 
     http://www.precisioninsight.com/our_team.html

 [7] Mesa 3d Site
     http://www.mesa3d.org/#Introduction

 [8] id Software
     http://www.idsoftware.com/

 [9] Microsoft DirectX
     http://www.microsoft.com/directx/
 
[10] 3dfx Interactive
     http://www.3dfx.com/
 
[11] 3Dfx Support Status
     http://glide.xxedgexx.com/status.html

[12] The Mesa Voodoo GLQuake home page
     http://www-hmw.caribel.pisa.it/fxmesa/fxquake.html

[13] XFree86 3D Status Report (cf GLX and XFree86)
     http://www.dpmms.cam.ac.uk/~werdna/XFree86-3D-status.html

[14] The as-yet-unnamed implementation of the GLX protocol
     http://www.cs.utah.edu/~sparker/xfree86-3d/

[15] Simon Pogarcic
     http://www.suse.de/~sim/

[16] GLX Acceleration for XFree86 and Linux
     http://reality.sgi.com/ripperda_engr/glx/old_news.html3

[17] Open GLX Project
     http://glx.on.openprojects.net/

[18] Matrox
     http://www.matrox.com

[19] Linux 3d News
     http://www.linux3d.org/news.html

 
Good night!
Marc

P.S. I got the OpenGL green book and the brandnew 1.2 red book
     in my mail - excellent stuff!


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-multimedia" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199909100024.CAA02216>