Slashdot Mirror


Alan Cox to NVIDIA: You Can't Use DMA-BUF

DMA-BUF is a recent kernel feature that allows multiple GPUs to quickly copy data into each others' framebuffers. A use case would be the NVIDIA Optimus that pairs a fast GPU with an Intel integrated GPU, where the NVIDIA GPU writes into the Intel framebuffer when it is active. But, NVIDIA won't be able to use this infrastructure because it's GPL. Alan Cox replied on LKML to a request from one of their engineers to mark the API non-GPL: "NAK. This needs at the very least the approval of all rights holders for the files concerned and all code exposed by this change. Also I'd note if you are trying to do this for the purpose of combining it with proprietary code then you are still in my view as a (and the view of many other) rights holder to the kernel likely to be in breach of the GPL requirements for a derivative work. You may consider that formal notification of my viewpoint. Your corporate legal team can explain to you why the fact you are now aware of my view is important to them." The rest of the thread is worth a read (a guy from RedHat agrees that this code is GPL and cannot become non-GPL without relicensing from a major subset of graphics system contributors). This has a ripple effect: it means that all of the ARM SoC GPU drivers can't use it either, and it may prevent any proprietary drivers for the proposed DRI version 3.

9 of 946 comments (clear)

  1. Honest Question by Anonymous Coward · · Score: 5, Interesting

    As AC since I'm sure this will garner much hate, but this is honest speculation with the intent of stoking real discussion:

    1. NVIDIA and Intel want to use a new whiz-bang feature in the Linux kernel to bring faster and more feature-rich graphics to Linux. This is a good thing, a very good thing.
    2. The current licensing in the kernel makes that impossible unless NVIDIA open sources its IP. Whether this is good is questionable because:
            a. It means NVIDIA has to give up a competitive edge OR
            b. NVIDIA has to write code and implement hardware in a manner that specifically prevents them from having a competitive edge.
    3. NVIDIA's only other option is massive duplication of effort and a fork of the Linux kernel. This is a questionable premise.

    So, given that NVIDIA's choice is to give up a competitive edge or to intentionally implement its feature set in an obstructionist manner, how is the GPL "good" in this case?

  2. Hmmm... by Ynot_82 · · Score: 4, Interesting

    Playing devil's Advocate here, as personally I agree with this (and don't let the proprietary nVidia driver anywhere near my system).
    But just for kicks, how does the recent case of Oracle trying (and failing) to claim copyright on the Java APIs affect this.

    If you cannot copyright an API, then you cannot apply a copyright license either.

    What if nVidia challenged this with exactly the same arguments that Google used with Dalvik.

  3. Re:Why is this supposed to be a good thing? by pipatron · · Score: 4, Interesting

    So what, exactly, is linux to you? If you want a proprietary operating system with closed drivers, there are plenty. Bending over sideways for a paranoid corporation just to get high definition pornography in 3D on your notebook sounds like a real bad idea to me.

    --
    c++; /* this makes c bigger but returns the old value */
  4. Re:The API isn't GPL. Using the kernel code is. by crankyspice · · Score: 4, Interesting

    derived works definition for software.

    Which is what, exactly? I'm a copyright attorney who has studied computer science at the post-graduate level (and am a Tau Beta Pi member), and I still can't give you a coherent, comprehensive definition for 'derived work' in software that's applicable throughout the whole of the United States, let alone internationally. The GPL is a clusterfuck in that respect, and it's never been considered by any authoritative (i.e., Federal Circuit level) court...

    --
    geek. lawyer.
  5. Also opening up their code isn't simple by Sycraft-fu · · Score: 5, Interesting

    They have many licensed components in their code. So they have to remove all that and rework it, and do it in such a fashion as to not get sued by those companies (who might claim that the nVidia programmers couldn't work on the new code since they'd seen the licensed code). This isn't just some more minor features such as S3 texture compression, but OpenGL itself. Go look it up, OpenGL isn't a free "do whatever you like" setup. There is licensing for it for companies like nVidia.

    Even worse is that because the issue isn't just opening the source, but actually GPLing it, that makes it so much harder. Some of their licensed components are things the companies might be ok with source distribution. However nVidia doesn't have the right to relicense that code under the GPL. So even if they opened it, it wouldn't do any good as the GPL is what is required here.

    So the argument of "just open the driver" is somewhat unrealistic. It isn't just that nVidia likes to have a competitive edge, though they surely do, but that it would be a major issue and a lot more work to try and do so, if it were even possible.

    Again, take the OpenGL issue since it is a pretty fundamental one. nVidia licenses the code and has the latest OpenGL 4.3 implemented on cards that support it. Ok so let's say they decide to grab the Mesa code for an OSS branch. It's MIT license which is GPL compatible so good to go right? Well, not really. Mesa is OpenGL 3.1, 3 years out of date, and it only recently got that. So they can either deal without a bunch of features on all platforms, have two different drivers one full featured on Windows and such, one with less features, or they can invest a ton of work to try and make their own up to date OSS OpenGL implementation and hope they aren't sued.

    None of those sound like very good uses of resources.

  6. you are missing something... by IBitOBear · · Score: 5, Interesting

    Linux developers don't care, nor shoud they, about the decision of one company to play nice or not.

    Linux kernel developers have been letting Nvidia get away with the whole "binary blob" thing for a long time. Nvidia has taken no real steps to come into conformance with the GPL requirements. They keep getting a pass for their bad citizenship.

    Eventually bad actors (Nvidia) either have to shape up, or they need to ship out.

    At the moment Nvidia is freeloading on the linux kernel. They are putting themselves in there for free. Now they are asking to break even more rules, or more accurately, to have the rules changed in the name of their personal interests. Nvidia has fouled their own bed, but now they are whining that they don't want to have to lie in the filth of their own making. They are a full grown company. They know what they _ought_ to be doing. They want a pass to have things their own way regardless.

    Sometimes you have to tell a spoilt child that they don't get the lolly this time.

    --
    Innocent people shouldn't be forced to pay for inferior software development.
    --"Code Complete" Microsoft Press
  7. Re:And this is why by oji-sama · · Score: 4, Interesting

    The GPL is preventing that corporate psychopath from taking what he wants with his power and instead establishes a level playing field.

    During this week I skipped using an open source component for a work project and started developing one of our own. If the project had been of supreme quality I might have created a wrapper which would have allowed us to use it in the (proprietary) project as it was GPLv2. If the component had been BSD or some other reasonable license (WTFPL is my favourite) I would have fixed the project and sent the creator the patches.

    We do have plans for releasing at least some of our stuff as open source, but I don't think it will be GPL. Then again GPL would prevent some competitors from using it, but that isn't exactly my idea of free.

    --
    It is what it is.
  8. Re:Face Reality: by Svartalf · · Score: 4, Interesting

    In truth, that statement was a LIE, and they knew it. If there was actual cards that I could've laid hands on back when the NV1 was out, there would've been a Utah-GLX driver because they made the programming interfaces for an NV1 publicly available at the time I was one of the Utah-GLX developers.

    --
    I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
  9. Re:What Cox is saying... by MtHuurne · · Score: 5, Interesting

    This did not stop Intel from releasing drivers, or AMD from releasing detailed technical documentation. And the Nouveau drivers already expose some of the functionality of NVIDIA's hardware. Also, both AMD and NVIDIA chips are being used in game consoles and those are programmed by sending command lists directly to the GPU, so console game developers have detailed technical descriptions of those GPUs; it's not like their programming interface is so secret that it never leaves NVIDIA HQ.