Slashdot Log In
NVidia and Linux Troubles
from the going-the-distance dept.
The following was written by Frank LaMonica, who besides his work to better 3D on Linux, I'm told he also plays guitar much better then me ;)
NVIDIA developed a driver for its TNT chipset that rendered indirectly through the XFree86 3.3.x X Server. That driver used a clone version of GLX that was developed by Terence Ripperda, was released with source code, but was, by NVIDIA's own admission, an interim driver intended as a short term solution. They placed information on their web site which announced their plans to release a DRI based driver at some time in the future. They recently made a joint announcement with SGI and VA Linux to publicize their upcoming binary only XFree86 4.0 compatible driver. Although the binary nature of their driver presents its own problems, especially with distribution, code maintenance, and support, we have to acknowledge that some companies believe their IP needs to be kept confidential in order to protect the interests of their owners. If customers trust that their interests will be maintained adequately by the vendor of their closed source software, the mechanism exists under Linux to allow that to happen. XFree86 4.0 has the capability to dynamically load binary drivers, so it is possible for anyone to develop a binary only driver.
A question was raised as to whether their upcoming binary driver was based on the Direct Rendering Infrastructure (DRI) which PI developed and that will be part of XFree86 4.0, or, if their upcoming driver would use its own, closed source, proprietary infrastructure. If NVIDIA creates its own closed source, proprietary infrastructure, that violates that basic premise of the open source paradigm - that the "road" which all users must use needs to be open sourced and freely available. An open source, "tax free" infrastructure is the only way to protect all of us from having any single company control key interfaces to diverse technology in a computer system. The MicroSoft model is not acceptable under Linux. If it were, we'd stick with MicroSoft - they are well funded, have a huge amount of resources, and represent a smaller risk to the end user.
The most serious danger to the open source community is the proliferation of a closed source, proprietary infrastructure. An obvious example of a problem caused by multiple graphics infrastructures is how to handle heterogeneous multi-head environments. A common infrastructure will allow multiple graphics devices to cooperate at run time. That common infrastructure had better be open sourced, or we'll find ourselves locked into a proprietary solution - and probably not one that we control! The DRI is fully open sourced, and was designed to be extensible. SGI actually helped to fund the DRI and a large part of its design was structured to allow future support for high end graphics cards. Many 3rd parties are developing drivers and adding infrastructure to the DRI. If the DRI doesn't support particular hardware in its current form, adding new graphics chipset support is considerably less expensive and time consuming that creating an entirely different infrastructure.
I was told by Jay Stocki, NVIDIA's software manager, that NVIDIA would not be using the DRI for its upcoming binary driver. If they have decided to use the DRI, or if they intend to release their source code, it would be nice to hear from NVIDIA directly so we can all know the answer to those questions.
Assumes XBox will do well- bad assumption. (Score:3)
BOB.
WinCE.
The Actimates toys.
Each of these is either a qualified or unqualified failure in the marketplace. I'm pretty sure there's lots of others and people can point them out (by the way, please do!).
Any idea as to how brutal the console games marketplace is?
Any idea as to how razor thin the margins on the hardware is?
Do you honestly think that Sony, Sega, and Nintendo are going to sit still while MS tries to muscle into their market?
In reality, NVidia might be set for the next 2 years- but most likely, like many of MS' offerings, it's going to flop or end up like their reference chipset for Direct3D ended up being (vaporware, for those who don't know what happened there...).
Re:This all just a ploy (Score:3)
As the market leader, they don't appear to be in any trouble. So that's a somewhat vacuous claim.
Unfortunately, this is not the case. The sort of maneuvering going on here is indicative of a shift in corporate strategy as NVIDIA discover that providing support for the freeware operating systems is at best a drain on their programming expertise and resources, and at worst a public relations nightmare as investors shy away from any company involved with "open-source", a dubious business model at best.
Sorry to debunk your fantasy, but this is the opposite of the truth. Who are nVidia losing business to ? All their competitors are moving towards , not away from supporting OpenSource software. So if it's a "public relations nightmare", it's one that they share with all of their competitors. If supporting Linux is proving costly, you'd think they'd release the source to their drivers, and recruit some free labor. Why spend money on developing drivers when someone else can do a better job for free ?
Mark my words, you will see less and less from NVIDIA on Linux as they attempt to sneak back into the lucrative and reputable Windows market.
This comment presupposes that nVidia are no longer "in" the "lucrative Windows market". To which I can only say "ha ha ha ha ha ha" ...
Am I the only one that doesn't care? (Score:3)
I am sure that NVidia has been made sufficiently aware of the arguments for and against open sourcing their drivers. They have chosen (for the most part) not to. Quitcherfrigginbitchin and live with it.
Much of the problem here may be the the looseness and immaturity of the driver interface for XFree86. NVidia has a constantly shifting target, and I am sure Linux is not their highest priority. Thus the quality of their drivers is going to lag a bit.
Don't like it? Buy another card. Or sign an NDA, get the source code, and create and distribute (maybe even sell) your own binary only driver. (Has anyone ever done this, if not, why not? Aren't MetroX and OSS exampes?)
-josh
Yet another downside to binary-only (Score:3)
What I often wonder is why hardware manufacturers can't just streamline the damn hardware interface so that the drivers don't tell what's going on inside! I talked with an Nvidia rep a while ago at a career fair, and he dropped hints that that was where they were headed-- and that future chipset drivers would of course have source-- but it seems they're still not taking the need for source-available drivers into their hardware design.
I'd at least hope they eventually release the driver source, once the GeForce/Quatro is old stuff, although the fact that they aren't using the DRI means a lot of work still remains to be done-- and since drivers like these are supposedly not easy to hack on, and their value then will be much less than it is now, it's likely we may never see a properly designed, source-available driver for our Nvidia hardware. Grrrr!
Re:Nvidia Contact Info (Score:3)
Where is this campaign originating from?
Short and sweet eh? I thought I'd written him a pretty civil letter explaining cogently what the problem was. Anyone else had any feedback?
Nvidia Contact Info (Score:3)
* You're an advid Linux User that supports OpenSource.
* That the Linux Effort at Nvidia could be done better if it were a collaberative Open effort involving Computer Professionals around the world.
* Other compeditors offer Open Solutions that you'd be more that happy to purchase.
* Binary Linux drivers do you no good when release of drivers is slow or (on older products) non-existant. Will there be a linux driver that works for your GeForce in 3 years???
* Be Polite
* To the point. Not too much tech. These are PR people.
Public Relations:
Derek Perez
3535 Monroe Street
Santa Clara, CA. 95051
Tel: (408) 615-2630
Fax: (408) 557-1200
E-mail: dperez@nvidia.com
Rich Black
3535 Monroe Street
Santa Clara, CA. 95051
Tel: (408) 615-2772
Fax: (408) 557-1200
E-mail: rblack@nvidia.com
Investor Relations:
Mary Ann Allencourt
3535 Monroe Street
Santa Clara, CA 95051
Tel: (408) 615-2750
Fax: (408) 615-2777
E-mail: mallencourt@nvidia.com
Support those that support you? (Score:3)
And then send a note to NVidia, "Hi, I wanted to buy your card, and although the promise of Linux drivers is tempting, I need to use it now."
You guys have enough to complain about; do you really want the "Linux community" to be characterized by whiners? :-).
How Unfortunate (Score:4)
I bought a TNT2 card for my machine, based on NVidia's actions at the time -- they were doing the Right Thing (my opinion, anyway). Then, the obfuscated code came, and the releases slowed. Finally in January they released a newer driver. Yes, it gave me 32 bit color, but the 3d performance was atrocious, and the Utah-GLX folks couldn't make much headway with the munged code. I waited for XFree86 4.0, though, believing that NVidia would make right, releasing a decent driver that took advantage of nice things like DRI.
Now it's not completely certain that they'll ditch the standard pipeline in XFree86 4.0, but the tone of the article suggests that. I wonder if I can talk them in to buying back my card. Matrox is looking better and better all the time. Sure, maybe NVidia gets better benchmarks, but when the company cannot put out drivers that let me run Q3 and will not put out drivers that the community can improve, well, they've lost the right to have my business.
Anyone with me?
--
The OpenSource as I see it (Score:4)
Last week I voted with my wallet (Score:4)
1: Linux and Open Source support
2: Image quality
3: Decent 3D performance
4: Legacy support (liftime for THIS card)
Some card based on the nVidia TNT2 would have been a STRONG contender, and a great price/performance choice. I might even have tried to spring for a GeForce, especially an SDR after DDR became The Next Great Thing.
But I want Open Source drivers. I want the responsiveness of the community. I want the chance to fix it myself. (If/when my employer clears up the IP issues.) I don't want drivers coming out on/behind the Windows driver schedule.
Precisely because of Open Source, nVidia just lost a sale, and Matrox gained one.
Why it's Closed Source (Score:5)
The AGP DMA technology their cards use is licensed from this other company (forgot their name). They signed an NDA to get this technology. DMA plays a huge roll in a 3D card's driver, ESPECIALLY if its AGP. Its the element that lets it pipe information right from memory to the AGP Card (Ex: buffering textures in system memory, and various other good things). To put it bluntly, what makes these cards so fast is their ability to effectivly use DMA. It gives them about a 400-600% speed boost.
Why did they license the technology out you ask? Why were they so lazy, why didn't they just develope it themselves? Simple: Why spend an extra 3 months developing your own technology when its cheaper to just license it out. You grab your license, encorperate it into your product, and you get your card to market faster, beating out the competition. That = more $$$. It was a perfectly logical choice for them (as far as business goes).
Another reason why is becaue Nvidia wants the linux/Opensource "buzzword". That buzzword in your business stratagy goes a long way. Its powerful enough to raise stock prices.
What should you do? This is what I would do:
Tell Nvidia bluntly in a polite manner that what they're doing goes completely against Open Source and infact DESTROYING the fabric of it. Raise a stink. You might even want to go as far as a boycott. Then take note at "model" companies like Matrox and others, who are opening their specs up.
They will listen, even if you only account for 5% sales. 5% is alot.
You should also see who supplied Nvidia their DMA technology, and talk to them about letting nvidia opensource it. Remember, Nvidia isnt the only "bad guy" here.
Taken from utah-glx.sourceforge.net/faq.html:
Here's where the problem lies: While nVidia "opened" up and came out with the X server and glx mod for
their cards, they havn't "opened" up their specs. We can do stuff to the code they have given us sure, but
the problem is we don't know how to do stuff like do AGP/DMA i/o with the cards. They havn't told us how to
talk to the cards and do this. They have released their "Resource Manager" (this is what a nVidia
programmer termed as in an email to the glx-dev list) which is basicly a layer of software that you can
communicate to the cards and do stuff AGP/DMA i/o (or at least that is what I've gathered. Would I be
wrong in saying it's kind of like Glide for the Voodoo cards, but even more low-level?)
really big but), not only have they released it as preprocessed (ie. they made it nearly impossible to be of
any real use to linux hackers without spending a lot of time reverse engineering it.), but also as a kernel
module that I have yet to hear of a single person being able to compile/run (I've tried too)
Sorry about the gimped out pasting, blame Netscape
Don't support NVidia (Score:5)
Anyway, now I am becoming very interested in the reasons why Matrox has apparently not released all the specs for their cards, either. Fortunately, the 3D portions seem to all be there, but portions relating to DVD playback do not appear to be open (big surprise). Also, my card has the ability to do TV-out, but there are apparently some problems with releasing information about that. Somethig to do with that annoying MacroVision copy protection, I guess, but I don't know why I should be forced to copy protect my desktop....
Anyway, Matrox is still doing a great many Good Things for the Linux/Free Software community, and I am very grateful.
--
Ski-U-Mah!
Stop the MPAA [opendvd.org]
That's a bunch of bunk and you know it. (Score:5)
We didn't present any drain on their programming or engineering resources of those companies- we just asked for the register level interfaces from them. They gave them to us and we produced drivers for their cards that work quite well for most things. In some situations, the drivers are faster than the Windows equivalents. In most situations, we're more visually correct than the Windows equivalents- less lighting screwups, etc.
To be sure, we're nowhere near done yet with these chipsets' drivers, but I don't see where it was a PR catastrophe or a drain on anyone's budget. NVidia chose to do a watered down, obfuscated release of source to a broken, buggy driver for their chipset. This is not the same as what the others have done- and it's not good enough by a longshot.
Save the FUD for posting on ZDNet- they want it, we don't.
I feel betrayed (Score:5)
Thanks
Bruce Perens
For varying degrees of "works" (Score:5)
Can you define "works" for us? Does that mean "works today," or "works next year?" How about "Works with any distribution" or "works in a specific environment?
Works for what architecture? Works with which games? Works with which X server?
All it takes is a quick little glance back to the Windows drivers that "work" to see that this is not the road I want to go down. (Hey, here's a new 4.14prerelease-Asubrev2 driver! Works great for shadows, but has some dithering problems! To install, just edit your registry this way, delete these system files, then reboot! Oh, and it only works with UltraGame patchlevel 3!")
No thanks. Binary doesn't "work" for me anymore.
---
How it SHOULD work (Score:5)
A mailing list is started and bunches of expert hardware hackers pound on the code, improving it to a very usable state in a matter of months. Sometimes progress is slow, but that's OK because everything is open souce, and if you wanted things to speed up, you could help. In less than a year, and helped along by major OpenGL vendors releasing more information, the low level driver is extremely usable, stable and fast. The project also expands to include other chipsets and manages to incorporate 3DNow, MMX and SIMD capabilities.
Fantasy? No, I'm talking about the Utah GLX [sourceforge.net] project which has more or less followed the pattern I've described above. If you have a Matrox G200, a G400, and ATi RagePro, Intel 810, RivaTNT or an S3 Virge, Utah GLX will support your card as a loadable module under XFree 3.3.x. Matrox support is so good that my G400 can run Quake 3 at between 50 and 60fps on a Celeron 400 machine.
Now I'm not at all clear whether the GLX module as it stands will just plug directly in to XFree 4.0. I suspect not. But if I have to wait a bit for it to be integrated, I'd much rather do that than get a card with binary only drivers that won't support the spirit (and the letter) of the new DRI.
Sometimes all it takes is a bit of patience. It can be irritating to hear GeForce owners boast about their frame rates. But if everyone's willing to contribute to the open source way of doing things, we'll end up with better drivers, better support and also encourage the current development teams that they're doing The Right Thing - which they are.
Nvidia's drivers will have strong points (Score:5)
However, there are only a half dozen coders working part time on utah-glx, and we are split among three active chipset trees. Nvidia has more people than that working full time exclusively for their chips. We are pretty good. So are they. We can work from specs. They can go interrogate the designer of the hardware. It's a pretty simple equation - I expect their driver to be better than our drivers.
Nvidia is working to maintain a common source base between their windows drivers and their linux drivers. Bugs tracked down by the order of magnitude more windows users will be fixed automatically in the linux version.
DRI does not have all of its problems solved, and there are valid reasons for them to not use it. They might change their mind later.
It should be remembered that some people want to do 3D graphics on linux and don't care about open source principles. Most of the people coming from a technical workstation background just want a vendor to deliver a tool to help them get their work done. I also suspect that most game players will choose a faster driver, even if it is closed source.
The choice isn't between making their driver open source or closed source. They CAN'T open source it because of legal encumbrances on the code. The choice is between doing a closed source driver with their existing code, and doing a completely new driver. Not too many people get excited at the prospect of rewriting perfectly good code.
If you care about getting open source drivers, support Matrox, 3dfx, or ATI. They have released specs to the community, and put out cash for PI to develop and support DRI drivers.
If you just want good 3D, I think nvidia will satisfy you. As for not being done yet, it hasn't been that long since Xfree 4.0 shipped.
John Carmack