PDA

View Full Version : Extensions and NVIDIA GLX



MC
05-23-2000, 12:17 AM
I use the 0.92 version of Nvidia GLX under Xfree4.0. It seems to work: glGetString returns Nvidia Corp. as vendor and list all extension supported (seems to be more than with 0.9 version? mabe my 0.9 was not installed correctly).

BUT, how do I use all extension, since there is no devel package (headers and import library) from Nvidia. Using MesaGL work, but when I try to use LockArraysEXT() (supported), the linker complains that it doesn't find the function (even if I declare it as extern...).

Update: hoops, it seems that I should use glLockArraysEXT.... Anyway, still have no gl.h...

Is there anybody who can help?

Does Nvidia ever heard about something called "GNU Public License"? and release all their sources and specs?

[This message has been edited by MC (edited 05-23-2000).]

fenris
05-24-2000, 06:26 AM
Geez, ya know, this problem wouldn't be if it were'nt for Nvidia's half-assed attempt at appeasing the gnu/linux community with this crap release of a 'driver'. I mean, we all know that nvidia makes some of the best consumer level 3D graphic accelerator video cards. I highly doubt that opening the source to the drivers, and shipping it development ready would hurt their marketing area in the slightest. If anything, it'll boost their reputation a little and pull in more sales. Most linux developers would rather use a G400 or ATI board. The drivers are available, and the source open. What linux loyalist wouldn't use them? I think NVidia needs to finish up this M$/XBox thingy and get back to work with SGI/VA Linux. They are obviously being swayed in two opposite directions.

[This message has been edited by fenris (edited 05-24-2000).]

mallan
05-29-2000, 11:38 AM
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 (http://oss.sgi.com/projects/ogl-sample/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 (http://indrema.com/servlet/site?page=Release_nvidia.html) .

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.

Cheers,
Mark
----------------------------
Mark B. Allan http://www.reptilelabour.com

fenris
05-29-2000, 08:15 PM
Ok, this isn't slashdot nor am i a 'troll', but it was a biased opinion based on how i feel about the entire situation. I too speak as an opengl developer and for a while i really couldn't develop in my choice environment, linux due to the fact that every opengl app i developed on my choice platform either locked the entire system or ran like utter crap. now that i look back on that post, i admit, it probably wasn't a swell idea to post that since it's totaly off topic and it wasn't any help to anyone. but it feels good to release anger in any means, so be it even a message board on the internet. half the stuff you've mentioned in your post, i've never heard before. so my post was incorrect due to lack of information. information i didn't know existed. so i did know what i was talking about. based on what i knew at the time. so i feel. it's an opinion, and ya know what people say about those... i learned a lot from your post. and learning is everything in this field we choose to speacialize in. what is this indrema? i didn't know the nvidia linux drivers contained non-gpl code. i thought they were written from scratch based off their windows drivers. if you wouldn't mind, could you post some url's to some of the news sites that post on these topics that you frequent? that would be real cool.

mallan
05-30-2000, 02:53 PM
There is an audio interview with their director of product marketing on this page (http://www.planetgeforce.com/articles/technology/geforce2gts-tony/page2.shtml) . The relevent portion of the interview is at the bottom of the page. He talks about the driver code and the benefits of a shared codebase. It's a bit hard to hear at times, but worth listening to.

MC
05-30-2000, 11:22 PM
Thanks for the links.

The new 0.92 drivers are a lot more mature than 0.90 and far better than old ones based on Xfree3.3.5.

If you have problem with AGP, try to reduce the AGP aperture size. On my system I must use 64Mo (I have 128Mo) to avoid regular swapping (which cause glitches).

Performance are quite stellar on my DDR, I didn't try heavy rendering (must install Q3 for this), but my littles apps seems to be as quite fast as on win32.

You know what? I'm happy to throw this M$ DevStudio away http://www.opengl.org/discussion_boards/ubb/smile.gif