Skip to main content

Nvidia Documentation Offers Linux Gamers an Olive Branch

(Image credit: Shutterstock)

Saying that Nvidia's relationship with Linux users has been less-than-friendly would be an understatement. (Remember when Linux creator Linus Torvalds flipped off the company in 2012?) But now it seems like Nvidia is ready to make friends, because it's publishing some of its GPU hardware documentation with the MIT license to make it more accessible to the public, according to a Phoronix report yesterday.

Linux was created specifically because Torvalds believed there needed to be an open-source alternative to Windows. Many Windows users prefer to use open source tools, which they can examine and modify themselves, instead of proprietary software over which they have limited control. Nvidia's reliance on proprietary drivers doesn't align with that ethos.

Other developers have stepped in to create open-source Linux drivers for Nvidia hardware. Those efforts have been stymied by a lack of documentation for the company's GPUs, however, which is what makes yesterday's revelation such a big deal. Nvidia's decision to make a fair amount of its hardware interface documentation publicly available should make it much easier for devs to work on these drivers.

The company told Phoronix that this open source documentation is "a work in progress" several years in the making and that "not all hardware interfaces have been published." Right now, much of the documentation is said to cover the Maxwell, Pascal, Volta and Kepler architectures; Phoronix reported that open-source documentation for the Turing architecture is also on its way but didn't specify when it'd arrive.

This is an important gesture from Nvidia. Many gamers rely on Windows even if they'd prefer to use Linux simply because the former plays nicer with Nvidia hardware. If this documentation leads to better Linux drivers, it could easily complement other efforts to improve gaming on the platform, such as Valve's ongoing commitment to improving Linux support for games sold via its Steam marketplace.

Nvidia made the documentation referenced in Phoronix's report available via GitHub. Hopefully, this signals the start of improved Linux support from the manufacturer, rather than a random gesture of goodwill, because a lone olive branch extended seven years after being called "the single worst company" the Linux community has tried to work with probably isn't going to be enough for Nvidia to make a new friend.

  • crysis2
    "Linux was created specifically because Torvalds believed there needed to be an open-source alternative to Windows." what?
    First of Linux is a kernel and you can't compare it with windows
    Second if you by linux meant GNU/Linux that has been build by Richard Stallman and the kernal has been provided by Linus Torvalds
    This is literally common knowledge
    Reply
  • bit_user
    This is an important gesture from Nvidia. Many gamers rely on Windows even if they'd prefer to use Linux simply because the former plays nicer with Nvidia hardware. If this documentation leads to better Linux drivers, it could easily complement other efforts to improve gaming on the platform,
    As usual, Mott can't resist padding out his articles with uninformed speculation and incorrect conclusions.

    Nvidia's proprietary Linux drivers are more than good enough for their hardware to outperform AMD, on the platform. I'm less familiar with how they compare to the Windows drivers, but any Linux gamers who are opensource purists aren't gaming on Windows, since that OS has no open source drivers.

    Moreover, he didn't properly read Phoronix' article, which points out that until Nvidia unlock the ability to control clock speeds on Maxwell (GTX 900-series) and newer GPUs, the opensource Nouveau drivers will never perform anywhere close to the hardware's potential. As yet, they've announced no plans to do so.
    Reply
  • mitch074
    Great, so nVidia released some documentation. Problem is, what was released was already reverse engineered by Nouveau - so it's useless.
    It's more than likely they are trying to show some good will towards open source software because this front has switched from pretty much negligible to very important lately, and that their competitors already have a head start - Intel by 2 years (finally integrating the Mesa project as a Gallium driver), AMD by 10 (with a full Gallium stack).
    Interestingly, on Linux, AMD cards perform better than nVidia's on some games where the latter work better on windows... Better OS? Or leaner driver?
    Reply
  • randomizer
    crysis2 said:
    Second if you by linux meant GNU/Linux that has been build by Richard Stallman and the kernal has been provided by Linus Torvalds

    Stallman wrote GNU, not GNU/Linux (which is not an entity itself).

    bit_user said:
    I'm less familiar with how they compare to the Windows drivers...

    Probably quite similar given that the vast majority of the driver codebase is common to all platforms.
    Reply
  • bit_user
    mitch074 said:
    It's more than likely they are trying to show some good will towards open source software because this front has switched from pretty much negligible to very important lately,
    In particular, the 5.3 kernel lost features needed by Nvidia for NVLink support. The rationale for removing those features was that the kernel developers had no way of testing them with in-tree drivers, because basically nothing else used it. So, where I think Nvidia is headed is to provide the information necessary to enable NVLink in Nouveau, and that will justify re-introducing the stuff they need to make it work.
    Reply
  • bit_user
    randomizer said:
    Stallman wrote GNU, not GNU/Linux (which is not an entity itself).
    Heh, he started the GNU project, which was aiming to provide an open source, UNIX-like system. For this, he created one of the first open source licenses, the GNU Public License (GPL), which has a controversial, viral clause that guarantees users access to the source code of any GPL-licensed software they use.

    Anyway, he started by implementing the userspace tools commonly found on UNIX systems, but GNU's kernel never matured (HURD exists, but mainly as the butt of many jokes). Then Linus took the GNU tools and ported them to his kernel, hence "GNU/Linux" = GNU tools on the Linux kernel. You can use the kernel without the GNU tools, such as Android does.

    Linus also used Stallman's license for his kernel. Any device drivers that are included in the kernel source tree must have this license. This is a high bar that some, such as Nvidia, have not been willing or able to clear. Even after the doc dumps, Nvidia continues to have their proprietary "out-of-tree" drivers and provides no official support for the open source in-tree Nouveau driver.

    By contrast, Intel & AMD actively develop and maintain their open source drivers. AMD has a proprietary driver package, but that mainly bundles a proprietary OpenGL stack and a few other bits atop the open source driver.
    Reply
  • bit_user
    Philippatos said:
    Phoronix is blog spam not news. Just post the letter, we can read it ourselves.
    That's too harsh, and not really accurate. Blog implies editorializing, which he doesn't really do. You can criticize some of his coverage and his benchmarks are sometimes questionable and not done with the same rigor as other sites, but it really doesn't deserve to be called "blog spam".

    And it's a bit ironic to note it in the comments on this article, as Phoronix has much better coverage of the issue than it does.
    Reply
  • mitch074
    bit_user said:
    By contrast, Intel & AMD actively develop and maintain their open source drivers. AMD has a proprietary driver package, but that mainly bundles a proprietary OpenGL stack and a few other bits atop the open source driver.
    Even better, AMD actually refactored their prorpietary driver so that it didn't need to use any proprietary bit in kernel space - the GPLv2 AMDGPU kernel driver works for both the open source and closed source driver. Meaning that their blob lives in user space only (which is quite nice security-wise) and the work they've done on the open source user space driver is quite impressive : not only does it perform much better (think 30-40% better) but it's also far more stable and is much more modern (native support for Wayland).
    bit_user said:
    That's too harsh, and not really accurate. Blog implies editorializing, which he doesn't really do. You can criticize some of his coverage and his benchmarks are sometimes questionable and not done with the same rigor as other sites, but it really doesn't deserve to be called "blog spam".

    And it's a bit ironic to note it in the comments on this article, as Phoronix has much better coverage of the issue than it does.
    Let's just add that while there's a bunch of benchmarking tools and suites on Windows, there is almost NOTHING of the sort on Linux (outside of I/O stuff) - Phoronix may not be as strict as, say, Anandtech, but it's quite formidable for being a one-man endeavour where he has to buy almost all the hardware he tests himself.
    On top of that, the Phoronix Test Suite is open source - So @Philippatos, if you don't find it to be strict enough, FIX IT YOURSELF!
    Reply
  • mitch074
    bit_user said:
    Heh, he started the GNU project, which was aiming to provide an open source, UNIX-like system. For this, he created one of the first open source licenses, the GNU Public License (GPL), which has a controversial, viral clause that guarantees users access to the source code of any GPL-licensed software they use.

    Anyway, he started by implementing the userspace tools commonly found on UNIX systems, but GNU's kernel never matured (HURD exists, but mainly as the butt of many jokes). Then Linus took the GNU tools and ported them to his kernel, hence "GNU/Linux" = GNU tools on the Linux kernel. You can use the kernel without the GNU tools, such as Android does.

    Linus also used Stallman's license for his kernel. Any device drivers that are included in the kernel source tree must have this license. This is a high bar that some, such as Nvidia, have not been willing or able to clear. Even after the doc dumps, Nvidia continues to have their proprietary "out-of-tree" drivers and provides no official support for the open source in-tree Nouveau driver.
    To be more precise, RMS implemented the user space tools, but also created EMACS and GCC (the Gnu C Compiler, which later became the Gnu Compiler Collection) - Hurd languished in development hell because, for one thing, microkernels are HARD and Hurd is actually a hybrid design (because on x86, microkernel have a big performance penalty), but also because BSD was, at one time, a contender to provide a UNIX compatible open source kernel.
    Technically, Linux (the monolithic kernel) debuted as an alternative implementation of the MINIX microkernel (Torvald, as a student, wanted a terminal emulator and MINIX at the time didn't support one). It's only later on that the GNU tools were migrated to it. The first version of Linux also didn't use the GPL, it's only later that Torvald decided to use it (and only the GPLv2 - not its subsequent versions).
    Reply
  • bit_user
    mitch074 said:
    it's quite formidable for being a one-man endeavour where he has to buy almost all the hardware he tests himself.
    No, I don't think that's true. I know he has bought a few things, like when Nvidia didn't initially send him a RTX card, he bought one. However, I'm pretty sure most of the hardware he tests is either sent to him or he's given remote access to it.

    As advertising revenues have fallen, a lot of sites that used to buy their hardware at retail (so that manufacturers couldn't send them cherry-picked units) have resorted to accepting manufacturer samples.

    mitch074 said:
    On top of that, the Phoronix Test Suite is open source - So @Philippatos, if you don't find it to be strict enough, FIX IT YOURSELF!
    Well, he didn't complain about PTS, specifically.
    Reply