Please ignore the troll ‘fenris’ who obviously doesn’t know what he’s talking about.
The NVIDIA beta drivers are certainly not ‘half-assed’. They are the most complete, stable and highest performance OpenGL drivers available for Linux at the current time.
The standard for dealing with GL extensions under Linux is still evolving. See the Linux OpenGL ABI for the current state of affairs. They have decided upon a ‘glext.h’ file which will need to be kept up-to-date for the latest extensions. From what I can tell, the glext header file is designed to hide some of the complexity of dynamic extension queries. Similar to Windows, the address of extension functions have to be obtained at run time with the glXGetProcAddressARB function.
You do not need a special ‘devel package’ to use the NVIDIA drivers - the standard Mesa headers work just fine. I’m using RedHat6.2 - I installed the Mesa packages that came with the distribution, then installed the NVIDIA drivers. If you want to access cutting-edge extensions, get the latest glext.h file from the Linux OpenGL ABI page, and read how to access extensions. I was able to quickly port some of the NVidia OpenGL demos that use the ‘latest and greatest’ extensions, and they work just fine.
I just did a quick check - glLockArraysEXT is defined in the Mesa gl.h file, and I made a quick program to test - it compiled and linked fine. Perhaps you have a problem with your Makefile or installation?
As for the GPL - there are NO Linux GL implementations which use this license. Mesa and the DRI use an MIT/X style license, and Utah GLX appears to use it’s own, very liberal license. NVIDIA has stated that it cannot open their binary drivers because it is the same codebase as their Windows drivers, and there is code in there that is not their property. They do not own some of the intellectual property in those drivers, so they cannot open source them. They are not splitting their time between Linux and Windows, nor are they being swayed in two opposite directions. They are working on a common codebase for both operating systems. Yes, they will be providing chips for Microsoft’s X-Box, but they will also be providing chips for the Indrema Linux-based console .
I am a Linux loyalist (and have been for over four years) and I am using the NVIDIA beta drivers because :
A. They are the most stable. I have been following development of the Utah drivers, and they still lock my system frequently (at least once a day). I have been using the NVIDIA beta drivers with AGP disabled since they were released, and I have not had any crashes, lockups, or problems of any kind.
B. They are fast. Due to a combination of drivers had hardware capability, the NVIDIA drivers are the fastest by a very large margin.
C. They are complete. The NVIDIA drivers support all of the hardware’s capabilities and extensions. Things like points and lines are properly implemented and support LINE_SMOOTH and POINT_SMOOTH, unlike either the 3DFX DRI or Utah drivers.
The DRI, Utah and NVIDIA teams are all doing a great job in bringing high performance 3D to Linux. At the current time, NVIDIA has the upper hand in completeness, speed and stability. Whereas NVIDIA is porting a functional, complete OpenGL driver from another platform, the DRI and Utah teams are basically starting from scratch. So, it will take more time for them to get to the same level. They will get there eventually.
Just for the record, I have three systems: my main system is a dual PIII 333 with a GeForce2, my old box is a dual PentiumPro 200 with a PCI 3dfx Voodoo3 2000, and I have a primarily Windows Celeron 466 with a Matrox Marvel G400. I do regular testing on all three to satisfy my own curiosity about the state of 3D on Linux. My opinions about the state of the drivers is from that of an OpenGL developer, not a Quake player.
Mark B. Allan http://www.reptilelabour.com