Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!


Forgot your password?
Graphics Open Source Programming Linux Hardware

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."
This discussion has been archived. No new comments can be posted.

Nouveau Open-Source NVIDIA Driver Achieves OpenCL Support

Comments Filter:
  • Burn it! (Score:1, Informative)

    by IronHalik ( 1568993 ) on Tuesday February 07, 2012 @01:56PM (#38956611)
    Burn it with fire! For all the countless hours spent trying to make it work on my "supported" Ubuntu box - the bootsplash, the dual displays, the login display config, user display config... You fix one thing, another jumps right back in.

    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".

  • Not quite (Score:5, Informative)

    by KerrickStaley ( 2423808 ) on Tuesday February 07, 2012 @01:56PM (#38956615)

    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:VDPAU? (Score:3, Informative)

    by Desler ( 1608317 ) on Tuesday February 07, 2012 @01:57PM (#38956629)

    No it doesn't.

  • by Anonymous Coward on Tuesday February 07, 2012 @02:08PM (#38956783)

    Then run Windows. Nothing is ever easy on Linux regarding this.

  • by Anonymous Coward on Tuesday February 07, 2012 @02:08PM (#38956793)

    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.

    And don't get me started on how crappy X.org itself is (the multiple monitor support is absolute shit compared to Windows or OSX).

  • Of course.... (Score:5, Informative)

    by DrYak ( 748999 ) on Tuesday February 07, 2012 @02:14PM (#38956891) Homepage

    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).

  • by geminidomino ( 614729 ) on Tuesday February 07, 2012 @03:41PM (#38958299) Journal

    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:Not quite (Score:5, Informative)

    by miknix ( 1047580 ) on Tuesday February 07, 2012 @03:49PM (#38958423) Homepage

    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 :)

"Never face facts; if you do, you'll never get up in the morning." -- Marlo Thomas