Nvidia Engineer Asks How the Company Can Improve Linux Support
sfcrazy writes "It seems that recent comments made by Linus Torvalds have made the people at NVIDIA take Linux more seriously. Recently Nvidia employee Stephen Warren asked in the Kernel Summit mailing list what could be done differently to make Linux support better. 'In a Google+ comment, Linus noted that we have mainly been contributing patches for Tegra SoC infra-structure details. I'm curious what other areas people might expect me/NVIDIA to contribute to. I assume the issue is mainly the lack of open support for the graphics-related parts of our HW, but perhaps there's some expectation that we'd also start helping out some core area of the kernel too? Would that kind of thing help our image even if we didn't open up our HW?'"
[...] we'd also start helping out some core area of the kernel too? Would that kind of thing help our image even if we didn't open up our HW?
You seem to care more about NVIDIA's image than about what the Linux community actually needs.
I truly don't understand what the big deal is. Just open up your damn specifications already.
vos nescitis quicquam, nec cogitatis quia expedit nobis ut unus moriatur homo pro populo et non tota gens pereat.
Open up the hardware such that proper drivers can be written for any card (recent or not) and platform w/o the need of binary blobs.
That shouldn't be an impossible task given how much weight NVidia has towards third parties.
Twitter supports and protects racists - by smearing their critics with the "Hate Speech" label.
Eventually given how global markets expand and change, Nvidia will have to change its policies.
After all, they sell a GPU.
Consider how silly it is not to publish register information so you can write software for it. It is silly. Especially if Intel did the same thing with its chipsets because AMD might get some information on how a instruction works and try and copy it therefore making assembly language illegal and silly IP laws.
Eventually this policy is going to cost Nvidia in the pocket book, and they will either come around or sink into nothingness.
The exact same direction Apple is going to be heading to very shortly.
-Hack
Got Geometrodynamics? Awe, too hard to figure out? Too bad.
I find your lack of faith disturbing...
A vulgar finger gesture got results.
Demand the moon, get a moon base.
It's unnecessary, and likely impossible, for Nvidia to open source its proprietary driver, due to licensed software they don't own (they have stated in the past). All that's needed is for Nvidia to release the documentation on the components they manufacture, as AMD/ATI did in 2008 (and Intel has always done). The existing nouveau driver team will take it from there. Nvidia can also choose to provide funding, salaried developers, or sample cards for the team. That would put them in a parity position with AMD and Intel.
Can You Say Linux? I Knew That You Could.
Firstly, deal with the goddamn shitfucking Optimus hardware that's out there!!!!!!
Better power management. KMS. More timely releases. Stop whinging that there are problems with Linux/Xorg/whatever preventing you from doing something and work with those up-streams to fix it. Stop making excuses, start releasing code. Extract the proprietry stuff to (a) smaller blob(s) and expose the trivial interconnects and such at the very least. Never say it can't be done: everything's possible. Etc.
Leela: "Is all the work done by children?" Alien: "No, not the whipping."
. I assume the issue is mainly the lack of open support for the graphics-related parts of our HW,
He knows exactly what people want. The entire point of the question is to make it look like they are doing something without actually doing something.
"First they came for the slanderers and i said nothing."
Very happy with my Radeon chipsets, don't have to worry about kernel version incompatibility or graphics lockups from some bug we can't even begin to fix. I've had both problems with nVidia hardware.
No PR move from nVidia is going to change my mind beside opening the specs.
Frankly the GPU support issues are going to be the big key issue no matter what. Whether you think its wrong/stupid/immoral/wasteful/anti-american or whatever to use Linux as a gaming platform or for any other sort of performance-critical real-time 3d rendering *some* Linux users will still disagree with you and do it anyway. Whether flaws in your business plan and/or shady under-the-table anti-competitive agreements made years ago with certain big software vendors preclude you from giving Linux full support or if its really some legitimate logistics problem *some* Linux users will still disbelieve the excuses and not forgive you for it. Some of those Linux users still consider themselves your paying customers. You will never truly live this down, but don't worry; judging by the word on the street these days neither will any of your competitors.
However, if you want to set up a smokescreen that hides the fact that *someone* in the higher end of Nvidia's chain of command is openly prejudiced against open source software (or just made a shit ton of cash on Microsoft stock perhaps and refuses to believe therefore that Linux is anything other than a waste of the company's time) you could at least consider making an attempt at distro-native packages for your driver that show evidence that you are capable of and willing to put at least half as much effort into working within the rules and parameters of various distro's packaging systems and with their tools properly as you've already put into that big self-extracting NVIDIA-Linux-x86-whatever.run bash script monstrosity to make it capable of the far more arduous task of cleaning up after itself enough to get a working GLX after it has fully subverted and broken said packaging system by using very crude non-native tools and methods that are not dependency-aware.
Not really. What is needed is hardware that can be documented. Nice of nVidia to confess they are "not it". Spares having to consider them.
Help stamp out iliturcy.
Yes, it's their own fault that they're hindering the progress of the community. But corporations are corporations - the way I see it, we're lucky they're offering help at all in response to it, even if only to save their image. Truthfully I haven't bought Nvidia in years, it's been AMD/ATI for me for the last decade. Just remember that our wallets are the most powerful tool we have.
Here's a summary of some of the most insightful discussions posted on slashdot when this discussion came up last week:
nVidia Issues:
*Proprietary drivers that don’t always survive kernel upgrades. So people who rely on nVidia's proprietary binary drivers can't always update their kernel or they lose their graphics until nVidia puts out an update. (from UnknowingFool) nVidia only provide a binary blob driver which makes bug fixing for it dependent on Nvidia's whims. (from AC)
*open source drivers – nVidia refuses to provide specs and API's for their hardware which make writing open drivers much more difficult and time-consuming because of having to reverse-engineer everything to get a workable driver. (from AC) As a result, open source drivers are unable to use full card functionality like full 3D acceleration (from UnknowingFool)
Summary of graphic chip vendor support (from Lonewolf666):
*AMD provides specifications and a small developer team that actually works on open source drivers.
*Intel provides open source drivers.
*NVIDIA makes good binary drivers, but those have problems when a new kernel version comes out with changed interfaces: Only NVIDIA can adapt them, and until they get around to it, NVIDIA may not work with the latest kernel version.
From rajafarian: If the kernel maintainers have a question about the hardware, they can't ask NVIDIA they have to test and reverse engineer to find the answer whereas with other companies, they may get an answer directly from the manufacturer. Get it? "...NVIDIA just made the damn drivers. Now that is not good enough." Not from a kernel maintainer's or Stallman's point of view, I'm pretty sure.
From jmorris42 : Name another major chip vendor who hasn't figured out that getting into the Linux kernel is a required checkoff for market success. Doubly so for any product used in the enterprise vs the fanboi market. NVidia's CUDA is about the entire list these days, the last major holdout.
From basscomm: Windows users who have SLI and multiple monitors have been able to enable SLI and use both of their monitors at the same time since about 2008. But under Linux, no dice. So if I had two monitors (which I do), and two Nvidia GPUs in SLI mode (which I do), and I wanted to run some 3D app that took advantage of SLI, I would have to: reconfigure X to disable my second monitor and enable SLI, restart X, play the game/use the app I wanted, when I was done I would have to reconfigure X again to enable my second monitor and disable SLI, restart X again, and reopen all my apps. Hardly ideal.
Given all of this discussion, here are a few ways nVidia could work better with the community:
*Open Source drivers - 1) provide specs 2) provide developer team that works on the OS drivers 3) provide rep to interface with the OS community 4) provide enough detail to get 3D working well
*Proprietary drivers - 1) monitor upcoming kernel builds and proactively update drivers before the next kernel release or 2) have a dedicated nVidia contact to work on updating drivers ASAP when notified that an upcoming kernel build breaks them
*Overall - enhannce SLI and multiple monitor support,
It's unnecessary, and likely impossible, for Nvidia to open source its proprietary driver, due to licensed software they don't own (they have stated in the past).
It also can break DRM.
Shai Schticks:"You don't make peace with friends, you make peace with enemies"
Absolutely!
However, AMD/ATI is a PR stunt. The drivers just wrap non-free software and can't be utilised at all on truly free software platforms. Intel is the way to go. While you can't buy an Intel card explicitly you can utilise boards and/or laptops without nVidia/ATI and then use an Intel CPU with integrated graphics.
http://www.thinkpenguin.com/ offers absolutely the best hardware for free software users. There are no proprietary drivers or firmware required and even the free software endorsed Trisquel distribution is supported. That isn't just some hardware. It's everything. An impressive feet given the selection of hardware available.
Actually. ThinkPenguin has the largest catalog of GNU/Linux hardware by far. There really isn't a comparable offering anywhere else.
Years ago I got good support from Nvidia. I had a problem and sent a bug report and got a response late on a Saturday night (West Coast) that involved a kernel patch to fix a bug in the kernel that was causing the problem. I was an Nvidia fanboy for many years after that. I helped dozens of people get things like Twinview working.
In recent years, working with Nivida has been very frustrating and I can no longer recommend them for Linux systems. For example some interaction between closed-source Flash and the closed-source Nvidia drivers turns people blue in Youtube videos but not other sites.
There has also been a heart breaking struggle to remove video "tearing" (vsync problem) when watching dvds and blurays. The last time I checked I needed to use the GL video to remove tearing when watching dvds but I still have some tearing when watching blurays which is kind of heart breaking. At the very least Nvidia should have a sticky post in the Linux forum explaining all the hoops one must jump through to try to get rid of video tearing. Also, having the sticky posts show up on all pages, not just the first page is a big PITA. It wastes my time and attention. It is disrepectful.
I don't understand why video tearing is such a recurring problem. Are these environment variables still needed?
export VDPAU_NVIDIA_SYNC_DISPLAY_DEVICE="DFP-0"
export __VDPAU_NVIDIA_SYNC_DISPLAY_DEVICE="DFP-0"
export GL_SYNC_TO_VBLANK=1
export __GL_SYNC_TO_VBLANK=1
export GL_SYNC_DISPLAY_DEVICE="DFP-0"
export __GL_SYNC_DISPLAY_DEVICE="DFP-0"
When an nvidia driver update causes tearing to start again, or worse, if it causes X (or the entire machine) to crash, it feels like you are telling me "F- you!"
I get it that opening up your drivers is not an option. The problem is that this decision causes a lot of breakage and you do not make it easy to fix this breakage. Please just make it easy for me to get your drivers to work. Is Twinview plus non-tearing video playback really too much to ask for? Also, what about the problem with non-tearing and composite? Has that ever been fixed? If not, maybe that's something you could help with.
Years ago I felt like I was getting support. Nowadays I'm not feeling the love.
We don't see the world as it is, we see it as we are.
-- Anais Nin
Move everything to userspace, and use an existing driver, or a very small open driver, to access the card. There should be no reason, even if they're crying "trade secrets" for this to happen. If nouveau can do it, and they're not crying trade secrets over it, then nvidia proper can do it too.
Seriously? What do you think this is about? What's the licence on this that makes you think it's non-free? You seriously don't think this licence cuts it?
Laissez lire, et laissez danser; ces deux amusements ne feront jamais de mal au monde. - Voltaire
It's everything. An impressive feet given the selection of hardware available.
Must be a Gnome user...
There is no "I disagree" mod for a reason. Flamebait, Troll, and Overrated are not substitutes.
Does Nvidia's driver exist for the BSDs, which do have a driver ABI?
It's funny, when I used to buy graphics cards, I bought nVidia because the driver was that much better - TwinView meant good multi-monitor support, etc... Now all that has changed. I replaced two nVidia cards with an AMD card, because AMD support their Eyefinity tech even on low-end cards, and my triple monitor setup works perfectly with 3D acceleration on the open drivers, which means I get KMS and no binary blobs. By comparison, I had to use xinerama to get triple monitors with the nVidia driver, no KMS, no 3D acceleration.
It's obvious what we want, open source drivers. If they can't handle that, documentation, but we all know they'll spout the same stuff about NDAs and 3rd party stuff they are licensing and can't reveal, and tell us binary blobs are the only way - well, I don't buy it. Intel manage it well, and AMD are definitely getting there. Binary blobs just don't give the experience any more, that's the reality.
-- Lattyware (www.lattyware.co.uk)
From TFE (email): "Within the constraints I have, what should I and perhaps other NVIDIA employees be contributing to in the kernel?"
I suspect those constraints essentially preclude what would really be useful, so what's the point?
AC may be referring to the firmware blobs without which newer AMD chips are good for little more than spartan 2d... That said, you really end up picking your poison with firmware. Some vendors include enough flash to store the blob, some demand that the kernel hand them the blob. There are exceptional cases, where the firmware is OSS, or where the vendor is a real asshole and forbids the blob to be distributed(for no obvious reason, since somebody always whips up a script that grabs the windows driver from the vendor site and gouges the firmware out of that.) In this unfortunate vein, it is probably worth noting that Intel is better about not making the firmware stuff visible, but AMD has historically been overwhelmingly nicer about coreboot vs. BIOS.
Get rid of the nvidia-settings application and provide something that resembles modern support for multimonitor setup, preferably by tying into the desktop environments' infrastructures. And support KMS.
"When I first heard Daydream Nation it quite frankly scared the living shit out of me." -- Matthew Stearns
I take it you hate gaming for Linux, since Intel is worse than Matrox for gaming.
If Linux had a platform share of 50% of the hardware market, they'd have sufficient grounds for biting the bullet and betting on staying ahead of the competition by being the best at doing the hardware part of their architecture.
The thing is, they could open their specs, wait a couple of months until open-source driver support catches up or even exceeds their closed-source drivers, and take pretty close to 100% of the Linux market.
Now, because Linux has at that point got as good or better accelerated video support than Windows, it will overtake Windows even faster than it's already doing for things like home theatre PCs. Valve will be happy, since their Linux-based console will be able to rock the cheap, powerful NVidia chips, and they will port more games to Linux since it's a pish easy job because of the improved 3D acceleration.
Yes, that's a bit idealistic.
for whatever reason, if their higher ups don't want to be telling the world how their drivers work, and so they won't.
That's nothing a good firing wouldn't fix.
When all you have is a hammer, every problem starts to look like a thumb.
and we ought to just accept it, then he should know a better perception will never happen and just accept it and the consequent loss of sales.
The REALLY DUMB thing about both the engineer (and NVidia) and you is that you don't seem to even consider "Hey, lets tell them why it can't ever be done.".
Except that was tried a long time ago, where NVidia said something like "SGI owns some of the stuff we use and they won't let us release it". Well, given specific goals, the FOSS people went to SGI and asked "Can NVidia release the stuff they got from you?" SGI answered "We cannot conceive of anything that NVidia has off us that we wouldn't be happy with them releasing.".
Now, given that, did NVidia release specs?
No.
And, having been caught out in a porkie-pie, they have refused since then to do other than let their fanbois (and I use their cards too) say "Oh, maybe they can't for contract reasons" because, not being party to any secret NDA, the fanbois cannot supply any information on who/what or why and therefore it can't be rectified.
I think some of the SGI people that were burnt very badly by software patent trolls ended up at Nvidia. Currently there is nothing to stop it all happening again if Nvidia describe their methods in enough detail to let opportunists go after them in court. It appears they don't think they can afford to open up the specs while broad software patents that should never have been granted still cover everything obvious in computer graphics.
That appears to be the "big deal".
Retrofit your monolithic binary blob into a wayland capable architecture and you'll have addressed many concerns such as KMS, EGL, etc.
Supporting it on Tegra would be a step towards running standard accelerated Linux on an ARM phone or tablet and you'll be the slashdot nerd's platform of choice ahead of Adreno, Mali, PowerVR, VideoCore etc.
It is not nVidia's job to do ANYTHING for X or Y operating system. If they make crappy drivers for a certain OS, they lose market on that OS. Maybe they don't care about that market.
Entia non sunt multiplicanda praeter necessitatem.
Hey, good news. China is changing.
Now, they tell you up-front that in order to sell a small number of units in China, you must hand over all your technical documentation so that they can start making and selling them after the initial sale.
After my optimus experience I will simply not buy another closed source NVIDIA graphics solution. In the end I much like others and the internet in general route around broken parts. I will be curious to see how kernel module signing some distros are doing now for secure boot will effect NVIDIA proprietary drivers.
Oh please, it's firmware whining again
Dear open source zealots, no one is obliged to add more circuits to a computer just because you can't be bothered to give the embedded card some data.
ALL computers depends on some amount of closed source data, deal with it.
There are exceptional cases, where the firmware is OSS, or where the vendor is a real asshole and forbids the blob to be distributed
Absolutely. Dear manufacturers, if you complain about distribution of fw at the same time anyone can download your "windows driver" off your website, You Are An Asshole
how long until
you don't quite understand the problem here - the HW manufacturer can offer a single Windows binary (or 2 or 3 at worst). But with Linux, they have to recompile a version for every (well...) version of the kernel that's out there. If the driver system had a stable ABI that never changed, then the HW manufacturers could deliver a single binary built "for linux" and would expect it to work. Currently, they have no such guarantee.
You wonder why Linux on the desktop never took off? There's no business benefit to the manufacturers to support it. Sure, its technically better, but that means diddly squat in the real world especially when the answer is to recompile from source. You're never going to get Nvidia's source code, so accept that and start to deal with it with a technical solution rather than an idealistic one.
Linux still uses X. Regardless of how far away it's abstracted with dirty ugly hacks, it's still X.
So - for desktop use - no, it's NOT technically better. And it has little to do with the drivers not being open, but rather the religious insistence of nutters to keep the useful, flashy, graphics, you know - desktop, bits out of where they could work.