Linux Support for Riva TNT2
Brian the Wise
writes "Just got email confirmation from NVidia that
the new Riva TNT2 will have full X and 3D support under
Linux. They should be announcing it on their web site in
about 2 weeks time. All we need now are our Quake3 for
Linux CDs."
We have a fully functional GLX driver for the MGA-G200, it won't be complete until Precision Insight releases their Direct Rendering infrastructure some time in June. Right now mos windowed GL apps run *MUCH* faster, quake2 even runs but has poor performance that will be fixed with PI's driver architecture.
http://lists.openprojects.n et/mailman/listinfo/g200-dev
Binary-only drivers are not a solution, please do not support hardware that doesn't have free drivers. (Speech, not beer)
Bit by bit, we're getting closer to the true desktop metaphor (I want my desktop to be 8K x 4K @ 200dpi and 90Hz :-)
"My opinions are my own, and I've got *lots* of them!"
My order of preference:
1. An driver written by regular Linux hackers who have full access to specs. (what Crow's doing)
2. An open driver written by the company.
3. A closed driver written by the company.
4. A closed driver written by someone for free for the company. (3dfx)
Nvidia might be 2 or 3. Let's hope 2. Like they did with their X server code, maybe they'll come around and give out the source. But I doubt it, since they probably consider their 3d parts to have much more information that needs to be kept proprietary.
Why do I think 1 is better than 2? I've been lurking on the mailing list for the G200 glx driver development, and I've learned so much from it! I had no idea about most of this stuff before. I could never have learned this, even if Matrox developed their own in-house open-source driver. So, it will be a very good thing if Nvidia releases the source to the drivers. I don't particularly like the preceden 3dfx has set. I like the one Matrox has set. Unfortunately, I have a bad feeling about which one Nvidia will follow.
I don't know the details of the TNT2 release. My best guess is that they have SGI OpenGL as a base. That means they'll be releasing binary only.
That's not particularly bad. There is room to have more than one OpenGL implementation. In fact, there are already three (Mesa, XiG, MetroLink).
The biggest problem is that OpenGL provides and API and not an ABI. That means programs can be recompiled against different OpenGL libraries and work, but compiling against one library doesn't insure compatability with another. No one wants that to be a problem, because we don't want different versions of applications to be required. I've been talking with vendors and suggesting that Mesa be made a reference platform. The advantage of that is that everyone gets it for free and we all agree on interface difference. Mostly this hasn't been a major issue in my testing so far, but it has come up. It also helps that we have some common benchmarking programs that we can all use to test.
That takes care of the commercial side of the discussion, now lets look at the free software side of the problem.
Mesa is the OpenGL layer. It currently has a hardware layer known as DD for lack of a better term. The current 3dfx support for Mesa goes through that interface. SUSE has worked on extending that to something they call ACL. See http://www.suse.de/~sim for more information. People are also adding multithread support and optimizations to the core of Mesa
GLX provides and interface layer between an X server and OpenGL. It also allows remote OpenGL applications to communicate with a local server. SGI made GLX open source.
Precision Insight took GLX and Mesa and rolled that into the XFree 4.0 tree. So, minimally all XFree 4.0 servers will have the capability of doing software OpenGL. This will become a new "assumption" about a Linux workstation which is great.
There is parallel work going on between SUSE and PI at the moment. Simon from SUSE, is working on a hardware interface layer (generic PCI) and an integration layer (MLX).
Finally Precision Insight is working on the DRI, direct rendering infrastructure. This allows applications outside the X server to talk straight to the hardware. Here's Q&A you can read.
My work on Glide for Rush (and now Banshee/V3) needs something like the DRI. My first solution was a bit of hack (called the Rush extension) and was an X server extension. Switching to the DRI should standardize things further.
I hope this clears things up. I'm extremely pleased to see all the progress. Having nVidia release an OpenGL is fine as long as it interacts well with applications compiled against Mesa. I'm fairly sure it will since they want Q3 to work!
- |Daryll