Nouveau Open-Source NVIDIA Driver Achieves OpenCL Support 109
An anonymous reader writes "The Nouveau driver project that's been writing an open-source NVIDIA graphics driver via reverse-engineering has moved forward in their support. The Nouveau driver now has OpenCL acceleration support to do GPGPU computing on the open-source community driver for several generations of GeForce GPUs."
Re: (Score:3, Funny)
They can't. They license lots of code from companies who wouldn't want the source released. Also, they gain nothing by doing so. The neckbeard market isn't their primary customers.
Re:If only... (Score:5, Funny)
The neckbeard market
Thanks for that bigoted remark. Most of us are otherwise normal people, you know.
Re: (Score:1)
from my travels around the internet I can tell you what neckbeard seems to mean.
People who know a lot about something. Calling someone a neckbeard in this case means " you just said something beyond my ability to grasp, I am now feeling insecure about my intelligence, so I will try to knock you down a peg".
Quite often it just means old people. Literally those old enough to actually grow a beard. And if you are capable of this feat, growing a beard is strongly discouraged. It invokes fear and uncertainty in
Re:If only... (Score:4, Insightful)
They license lots of code from companies who wouldn't want the source released.
Then release it without those parts and the community can fill in the gaps. Also, document the interface of the hardware.
Also, they gain nothing by doing so.
They get a more solid and reliable code base through the community eyes.
Re: (Score:2)
I really do not know how much the community contributed to the open source drivers. But at least AMD got some market share in exchange for doing that work. And if they open source their programmable interface you can bet they'll get some more market.
Re: (Score:1)
The point is that the "community" claimed that just releasing the hardware specs would be enough for them to do the driver work. The problem was that that wasn't true and AMD does pretty much all of it themselves.
Re: (Score:1)
Really? How come the open source drivers for the ATI radeon cards from that era are all very completed and its the new ones that are supported for shit except by the binary drivers?
What about OpenGL ? (Score:2)
Re: (Score:2)
Re:What about OpenGL ? (Score:4, Insightful)
Re: (Score:2)
File bug reports instead and use the blob until the problem in nouveau is fixed. If that issue is blocking you.
The best way to support Nouveau is by using it and reporting issues.
Re: (Score:3)
I've had no significant binary blob driver issues with the desktop in Gnome 3, but I can't say I've timed it against using nouveau much since it just works.
At any rate, I'm most happy with NV+Binary drivers on Linux these days, have been for a while. When ATI or someone else or Nouveau catches up, then great.
Re: (Score:3)
Not sure how you obtain blender - but if you nab the pre-build binaries (they run from wherever you extract them and store stuff in ~/.blender) they come with a mesaGL binary that does not require hardware OpenGL support. Debian has a seperate package for this as well, but I think Fedora only ships the "normal" binary.
It can be a bit slow in complex scenes, but that's only at the UI level. The render output is the same, and now that nouveau supports OpenCL you will probably be able to continue to use the gr
Re: (Score:1)
Mesa software implementation against low-level drivers and hardward. Wonder which is faster?
Re:What about OpenGL ? (Score:4, Informative)
If you're concerned with performance, use the blobs.
If you're concerned with FOSS purity, use nouveau.
It's one of those 'decision' things that we adults have to deal with every day.
Re: (Score:2)
So? The issue posed wasn't "it's too slow" - it was "I can't run blender."
I gave the only sensible solution - use the mesa build. You apparently want him to either buy hardware or bend principles. Fuck off.
Re: (Score:2)
I don't like the binary blobs for because they 1) break when I get automatic updates that include a kernel
Install the rpmfusion repo and then
yum install akmod-nvidia
and never have to worry about a kernel update breaking the driver again. It's that easy.
Re: (Score:2)
I can't run blender. Gnome 3 is very laggy when it works. I can't run Neverball for very long. Yet they think this driver needs OpenCL?
IMO, the motivation to have OpenCL working is completely separate from having functional accelerated video. Maybe it's just the people working on the driver are more interested in doing a compute project.
Re: (Score:2)
The developers are very helpful and they helped me to resolve a few issues with nouveau in the past, they fixed the source of the problems I had.
Please always file issues for any issues you have.
Thanks.
Re: (Score:2)
will 3) not work with Wayland when it matures.
Don't worry, few things will work with wayland when it matures. Like, for instance remote windowing, consistent window decorations, etc...
Re: (Score:2)
will 3) not work with Wayland when it matures.
Don't worry, few things will work with wayland when it matures. Like, for instance remote windowing, consistent window decorations, etc...
Given that the temperature of the universe will be very close to absolute zero when Wayland matures, I suspect those aren't the only things that won't work.
Re: (Score:3)
I don't like the binary blobs for because they 1) break when I get automatic updates that include a kerne
You must have a pretty off beat distro. dkms has been handling that problem for years.
Re: (Score:2)
I don't like the binary blobs for because they 1) break when I get automatic updates that include a kernel ...
What about a distro with DKMS [wikipedia.org]? Wikipedia claims Fedora supports it these days...
Re: (Score:1)
That's a good reason as is the fact that many systems can't boot or boot and hang after loading X without acpi=off while using the Nouveau drivers.
Re: (Score:2, Informative)
AMD/ATI isn't really any better. The open source drivers suck just like Nouveau. So you have to use the binary AMD drivers if you want full support and performance. But then you're in a worse position than nVidia because the AMD drivers are terrible.
The whole situation just sucks to be honest. The best choice is nVidia hardware with the closed-source nVidia drivers but they're far from perfect. I believe the AMD hardware may be better but their drivers suck so bad that you can't take advantage of it.
An
Re:What about OpenGL ? (Score:4, Insightful)
AMD/ATI isn't really any better. The open source drivers suck just like Nouveau.
Not my experience. I've been using ATI with open source drivers for years now and have had very few issues. I did have problems with Nouveau though and ended up swapping out the card out for an ATI one.
(the multiple monitor support is absolute shit compared to Windows or OSX).
I have a dualhead DVI setup with an AMD DMS-59 card and it works fine. What exactly do you think is missing in Linux? Last time I installed, Ubuntu auto-detected the dualhead setup, and it was a single mouse click to swap from mirror image to left/right screen. I know that using multiple cards for a multiple monitor setup doesn't work very well in Xorg - but I've also heard the same about Windows.
Re: (Score:2)
Re: (Score:2)
Re: (Score:1)
The proprietary AMD drivers are horrendous... I just tried installing over the weekend and had nothing but trouble with them. First, I tried the Ubuntu 11.10 fglrx packages. This gave me a single display (I have 3 1080p monitors, switch between separate and Eyefinity in Windows) and a single card (have 2 5870 reference boards in CF). I tried to enable the other displays and CrossFire and the machine got stuck on the next reboot (couldn't start X). I then tried the "updates" version from the repos, same
Re: (Score:2)
Open drivers with 3D acceleration and good performance is what's still missing in Linux.
I'd buy all my video cards from whichever vendor has that. But none of them do. Not Nvidia, not AMD/ATI, and certainly not Intel or any of the others who have the additional problem that even if they had a great open source driver it wouldn't help because their graphics hardware performs so poorly. 2 years ago, I heard ATI was going to open up, and so my newest computer is an AMD with ATI graphics. But they haven't
Re: (Score:2)
Same here, my last two computers (an 11 inch laptop and a self-assembled desktop) were deliberately bought with AMD graphics cards because the radeon (Open Source AMD card driver) works so well out of the box. HDMI out, multiple monitors all just works.
If I plug in HDMI to my laptop it pops up a dialog asking me to configure the 2nd monitor, which takes me to KDE's standard Display thing in its control panel. This works the same across distros (Opensuse and Kubuntu) and that's the way it should be.
All that
Re: (Score:1)
These days 2 monitors is not "multiple monitors". TwinView works great.
Now try 4 monitors and 2 video cards with X.org.
Except of course, You only have TwinView if you are using the Nvidia binary blob drivers. Supporting TwinView is another thing the free drivers don't do.
Re: (Score:1)
Re: (Score:1)
I think that it is you that is trolling here. Not only are you deliberately spreading FUD about the nvidia drivers :
the nvidia blob is actually a half-assed port of their Windows drivers to Linux
the only even marginally semi-constructive thing you appear capable of saying is "have you done some bug reporting?", while completely ignoring the fact that the support it provides is at the level where the only pertient bug report wording would be "when will you start planning to support the other 50%+ of the API?".
Re: (Score:1)
Sorry about the way I expressed myself though, and I wasn't ignoring anything, I just wasn't aware that there were things still left to implement. Sorry.
Of course.... (Score:5, Informative)
It seems AMD is better supported by open source these days, when it used to be nVidia was the obvious choice.
Well, of course. AMD does publish documentation and put ressources behind the opensource development. NVidia doesn't.
Only these latest 2 generation seem to be very active, and they don't even have full functionality
For Nvidia cards, reverse-engineering is needed. So support will depend mostly on what the developper community has under their hand and can experiment the most with.
Too old cards aren't used so much any more, and thus there isn't as much experimentaiton going on them.
Too new cards haven't been around enough for enough reverse engineering to happen, so you won't see much support for them before a couple of year.
so it seems silly to be putting time into OpenCL.
Putting OpenCL in there doesn't divert that much ressources from Nouveau. Gallium3D is very modular (that's the main reason it's popular in the open source).
You just have back-end exporting hardware functionnality on one hand, and front-end supporting various API on the other hand.
You could in theory just freely slap any front-end on any back-end (and it's mostly that way in reality, hence the popularity of Gallium3D).
So bringing OpenCL to Nouveau boils down to :
- efforts in impoving the OpenCL state tracker until it can support enough of the OpenCL API. These are efforts done be people external to the Nouveau project. (Mostly the initial Clover project, then Google Summer of Code, etc.) And these are efforts done (mostly) independently of the back-end used (a lot is done on the CPU backends like LLVMpipe, but could also be used on Nouveau, AMD's R600g or the Gallium drivers for Intel developped by Google).
- efforts to bring enough of the hardware functionnality into the Nouveau back-end. These are efforts done by the Nouveau team. But some of these effort benefit also the 3D API or any other front-end running on Gallium3D (in theory, even the Gallium3D powered DirectX 10/11 front-end could partly benefit of these efforts).
That's also why OpenCL has been so quickly added to Nouveau: because it's cheap. OpenCL is mostly done (unlike OpenGL which is only currently achieving OpenGL 3.0 support in Mesa 8.0, whereas the current OpenGL implementation is 4.2 - so several versions behind). And GPGPU is mostly only uploading code to run on the chip (lots of functionnality which is used for 3D is not used for GPGPU), so as long as the the few OpenCL specific hardwaare functionnality is supported, OpenCL is ready to go.
For an up-to-date 3D support, there's still a lot of work to go into the Gallium OpenGL state tracker so it supports all the API and functionnality necessary for OpenGL 4.2. And there's still lot of hardware functionnality that needs to be done in Nouveau. Which is, again done entirely by reverse engineering and without an help from NVidia.
So, still a lot to go before having good 3D support.
At least, AMD is giving out documentation and paying a few developpers, and overall trying to guarantee some opensource support in parallel to their closed source catalyst.
And Intel and Google are actively developping opensource drivers as their main hardware support for Intel chipsets (with Intel developping classic Mesa and Google making Gallium3D drivers).
Re: (Score:2)
If Intel would bother actually putting some hardware behind those things, they may well be the 'best' solution.
Re: (Score:1)
flash? (Score:1)
Re: (Score:1)
Re: (Score:2)
I haven't noticed issues on with Flash on nVidia with F16 (x64, custom kernel) and open source driver. I'm using a GTX 460.
VDPAU? (Score:2)
Re: (Score:3, Informative)
No it doesn't.
Gallium3D video (Score:3)
There's a completely separate project which tries to bring support for video acceleration and video APIs on the Gallium3D.
Now, these efforts are using the Gallium3D stack. That means that the video is getting decoded by the 3D hardware (by code running on the shader/kernel processors) and not by the separate video hardware that some chip feature.
(In AMD's case that means that the decoding is done by the same units which does OpenGL/OpenCL and not by the UVD).
Burn it! (Score:1, Informative)
And to be fair, proprietary nvidia drivers are far from flawless too - Most of the things work except one, kinda big thing - X server using one whole core, just to render the desktop. It's a "feature regression".
Re: (Score:1)
Re: (Score:2)
How could I, with clear conscience, use OS that was produced by such vile characters.
For the record, I'm perfectly fine with Arch Linux on my laptop.
Re: (Score:1)
That is, reporting bugs?
Re: (Score:1)
And for Ubuntu, I reported message indicator not working properly with Empathy - its one of the nicest features in Unity. "It regressed". They will fix it in 12.04. Maybe. A bug has to wait half a year, because
Not quite (Score:5, Informative)
From the article:
Unfortunately this current Nouveau OpenCL work done by Francisco Jerez isn't in the upstream Nouveau code-base but rather a separate branched Git repository. This is still out-of-tree work and it's not clear when it will be merged, but is already out of the question for the soon-to-be-out Mesa 8.0. The next hope would be seeing Mesa 8.1 be more OpenCL compute friend when that arrives in the middle of 2012.
Also, it only supports the older NV50 cards, not the newer NVC0 cards. I'm still keeping my fingers crossed, though: if OpenCV gets OpenCL support, then computer vision people could do GPGPU without needing the proprietary drivers.
Re: (Score:2)
From the article: I'm still keeping my fingers crossed, though: if OpenCV gets OpenCL support, then computer vision people could do GPGPU without needing the proprietary drivers.
Why is it so wrong to use the proprietary drivers? I mean don't we want companies to write drivers for linux for their hardware. NVIDIA does this and has for many many years. Why are you so eager to drop the proprietary drivers when they work so well in linux? It's one reason I always buy NVIDIA, even in my Windows machines. Because they support linux with drivers. I mean even my old NVIDIA cards running my servers still work. Sure newer drivers don't work, but old drivers do and work very well. I just don
Re: (Score:1)
From the article: I'm still keeping my fingers crossed, though: if OpenCV gets OpenCL support, then computer vision people could do GPGPU without needing the proprietary drivers.
Why is it so wrong to use the proprietary drivers? I mean don't we want companies to write drivers for linux for their hardware. NVIDIA does this and has for many many years. Why are you so eager to drop the proprietary drivers when they work so well in linux?
There's a number of reasons to want the source: fix bugs, add features, build for a non-Intel architecture, you could be an optimization freak(ie. Gentoo user). The real question is what is the harm to Nvidia for releasing the source? They are a hardware company. I doubt that their secret sauce is in the driver, so why would it do anything but help their sales?
Re: (Score:2)
With proprietary drivers we lose a lot of control of our system.
With FOSS drivers we have the control, and this is the way it should be.
Re: (Score:1)
The real question is what is the harm to Nvidia for releasing the source?
The cost and time involved with properly auditing all the code, time and money spent trying to get licensors to allow source release and three time and effort to reimplement all the parts they won't be able to open source, etc. Unless the neckbeard market is going to make up for all the time and money spent, nvidia gains nothing.
I doubt that their secret sauce is in the driver, so why would it do anything but help their sales?
And you would be wrong. There is lots of optimizations and other technologies in the drivers that they don't want shared. Also, they won't gain any sales from it to warrant the effo
Re:Not quite (Score:5, Informative)
Why is it so wrong to use the proprietary drivers?
I'm going to give you an example. My parents computer which is actually a laptop with a GeForce FX Go 5300 has GNU/Linux on it. The last official driver from nvidia supporting that card is nvidia-drivers-96.xx. Then if you read https://wiki.archlinux.org/index.php/NVIDIA [archlinux.org] :
Note: Currently nvidia-173xx, nvidia-96xx and nvidia-71xx drivers do not support Xorg release 1.11, and therefore are not available in the Official Repositories. You can use the open source drivers (nouveau or nv) instead.
I belive the drivers still worked under Xorg 1.10 under a compatibility layer. But my point is, if the vendor decides to stop supporting your hardware, you are left in cold waters if there isn't any opensource driver..
Another example is the XRandR case. Nvidia bundles the nvidia-settings application which works fine if you use it. However if you want to use the KDE or gnome or whatever other software to change the screen resolution and multiple-screens, then you will notice how bad they work BECAUSE nvidia fails to properly implement the XRandR specification (instead they make some kind of wrapper to their own twinview). With nouveau, XRandR works beautifully.
Because nvidia also emulates Xinerama, sometimes window managers fail to properly detect your multi-screen setup geometry and you will get strange window management results. This happened to me and that's why I perfectly happy with nouveau. Of course I still hit bugs when playing opengl games and sometimes the GPU even hardlocks but I honestly prefer having those localized bugs than the general inconsistencies I described above.
BTW: cudos to everyone involved in nouveau. OpenCL support is indeed a very good thing :)
Re: (Score:1)
On the other hand, nouveau actually uses our existing Linux infrastructure. Nouveau does support KMS and XRandR properly. Also, XRandR uses KMS to change the resolution and stuff, since X is not in charge of handling resolution and depth anymore, KMS does that these days. So XRandR is just a wrapper to KMS these days.
Nouveau already has Wayland support also which also uses KMS.
I
Re: (Score:2)
I've reported a few and the nouveau developers were really kind and assisted me on fixing them, at the end we fixed them all.
Here is the issue I had, the nouveau developers rock (thank you so much guys):
https://bugs.freedesktop.org/show_bug.cgi?id=40630
Re: (Score:2)
Yeah, I have this hard lockup (on a G86) that always happen when I suspend (s2ram) the laptop and it is connected to one screen other than the laptop internal. I've been willing to report this for quite some time now, but you know how it is, it is easier to avoid the problem than to fix it :P
Re: (Score:1)
Thanks.
Re: (Score:2)
But there are counter-examples to that, too... I had to downgrade from RHEL6 because the latest OPEN SOURCE Intel video drivers (which require KMS) are completely unusable and ause the display to stop working within an hour or two. The drivers in RHEL5 worked perfectly well... Never any such problem with NVidia's binary blobs.
In your case, the open source driver just HAPPENS to support something the binary doesn't. I'm sure there are MANY cases where the binary blob works better and supports more, as we
Re: (Score:2)
That's complete nonsense. I've been in the "community" for a good long time, and I've seen, over and over, the developers' interests often don't match the users' best interests. There's nothing wrong with this, but it means that a company is far more motivated to make sure their hardware is working right in a given configuration, than are a bunch of volu
Re: (Score:1)
Another example is the XRandR case. Nvidia bundles the nvidia-settings application which works fine if you use it. However if you want to use the KDE or gnome or whatever other software to change the screen resolution and multiple-screens, then you will notice how bad they work BECAUSE nvidia fails to properly implement the XRandR specification (instead they make some kind of wrapper to their own twinview). With nouveau, XRandR works beautifully.
Because nvidia also emulates Xinerama, sometimes window managers fail to properly detect your multi-screen setup geometry and you will get strange window management results. This happened to me and that's why I perfectly happy with nouveau. Of course I still hit bugs when playing opengl games and sometimes the GPU even hardlocks but I honestly prefer having those localized bugs than the general inconsistencies I described above.
BTW: cudos to everyone involved in nouveau. OpenCL support is indeed a very good thing :)
You see, the reality is that anybody doing any serious 3d work wants exactly the functionality that Twinview gives them, not the supposedly "correct" functionality from the OS drivers. What KDE and gnome should do is use the wrapper, not mess around on their own. And that is simply because everybody doing serious 3d cares about their application and the performance, not what abstraction of things the utterly boring and not terribly useful thing drawing window borders thinks of all of this.
Re: (Score:1)
I have no doubt that when Nouveau gets better power management, better performance and VDPAU it will overtake the blob.
Re: (Score:1)
"Not to mention that nouveau supports .. Wayland, etc"
Thtat right there is reason enough not to use it, besides being useless... its one of the first things that gets thrown out, blacklisted and replaced by the OEM nVidia driver.
Re: (Score:3, Interesting)
How about improving your reading comprehension? And what is exactly not working for you with nouveau? How about doing some bug reporting?
Re: (Score:1)
"I was saying that there are many reasons to use Nouveau, one of them is that nouveau supports KMS and Wayland while the nvidia blob DOES NOT."
I do not care about support for wayland, and that the nVidia OEM driver doesn't support it is a GOOD THING!
"How about improving your reading comprehension? And what is exactly not working for you with nouveau? How about doing some bug reporting?"
Your the problem with the reading comprehension. I ONLY use the OEM nVidia drivers. First thing that gets thrown out and di
Re: (Score:1)
that is... you.
Re: (Score:2)
The nouveau project and wayland can just go away as far as I am concerned.
In Soviet Russia, you can just go away!
Re: (Score:1)
The problem still remains that it utterly sucks with 3d performance, something that is actually the foremost reason these days to actually have a discrete graphics card in your computer. What use is a graphics driver for a 3d card that does not do 3d?
Re: (Score:1)
It's not wrong - it's just that open source drivers work out of the box, while proprietary drivers need some tinkering and only support the latest hardware. Compare with the experience you get with Linux on PCs with Intel graphics - almost everything just works and at full performance, with no need to hunt for drivers, download firmware blobs, etc. And Intel start updating their drivers to support new products months before they're released to the market.
Re: (Score:1)
"- it's just that open source drivers work out of the box, while proprietary drivers need some tinkering and only support the latest hardware."
I don't do any tinkering or searching for OEM drivers..
a few commands to enable XSWAT PPA
an apt get to install...DONE. I have not tweaked a setting for a thing, X or card. none.
Other than re-enable desktop effects, so I can enable one thing transparency... (don't get me started on my rant on that in KDE4)
Works great.
As for the absolute stupidity of both nVidia and cr
Re: (Score:1)
Why is it so wrong to use the proprietary drivers?
Here's an example. I bought a laptop with an Nvidia Quadro FX 3800M specifically for triple-head support (via docking station) and I can't even get dual-head to work properly due to an infinite loop somewhere in the binary drivers when mode-switching. I've done most of the investigation work, even running X through gdb and they're not interested in helping - not even some basic debug symbols.
I've been completely ignored by Nvidia via both of their official support channels: (1) the nvnews.net forum [nvnews.net] and (2)
Re: (Score:1)
Great, at least... (Score:1)
Re: (Score:1)
This seems to be the right solution.
http://www.youtube.com/watch?v=ISTwKdq9xJo
That's cool I guess (Score:2)
Re: (Score:1)
all I want is xbox support (Score:2)
Apparently some NV2A stuff has gone into Nouveau but not the stuff for the TV Decoders. Haven't found any significant blog posts or mailing list updates newer than 2008...
FAR from useful (Score:1)
Until it passes the OpenCL conformance tests (which are a major PITA) it's not really useful. One of the major reasons OpenCL is valuable is that it provides a guaranteed level of accuracy for math operations. This has a lot to do with the libraries that vendors ship, and that is a decidedly non-trivial amount of engineering and testing to implement. (I've been involved in getting OpenCL to pass conformance for three platforms.) I'd say they are about 10% of the way there.
That's all very well, but what about ... (Score:1)