Nvidia announced it has released “experimental” open source driver code for its upcoming Tegra K1 SoC, and even won praise from former Nvidia critic Linus Torvalds.
Nvidia formally announced the Tegra K1 mobile system-on-chip at CES last month. This fifth-generation Tegra adds a powerful, 192-core Kepler GPU to what is essentially a Tegra 4-like quad-core Cortex-A15 design. The Tegra K1 is expected to ship in mobile devices in the second quarter.
Now, Nvidia has released “proof-of-concept” code under an open source license for the Tegra K1′s Kepler GPU, or “GK20A.” Nvidia developer Alexandre Courbot announced the release Jan. 31 on Freedesktop.org, referring to the code as patches that “perform architectural changes to Nouveau that are necessary to support non-PCI GPUs and add initial support for GK20A.”
According to Courbot, the release is endorsed and supported by Nvidia, a company infamous in the Linux community for shipping its GPU support as proprietary binary driver “blobs” and otherwise making life tough for Linux developers. The company’s closed-door approach has made it difficult for Linux developers to exploit Nvidia graphics acceleration on PCs. Now that Nvidia’s Kepler graphics engine is going mobile as part of its own Tegra K1 SoC, Nvidia has apparently had a change of heart.
The release earned praise from an unlikely source: Linux creator and overseer Linus Torvalds. In 2012, Nvidia received a public scolding from Torvalds as being “one of the worst trouble spots we’ve had with hardware manufacturers.” He went on to give a middle finger salute to the company, with a four-letter oath to match. Following the GK20A announcement, however, Torvalds jumped on Google+ to write: “Hey, this time I’m raising a thumb for nvidia.”
According to a CNET report on the release, Nvidia has begun to reach out to open source developers in recent months, but until now has only released some documentation. The driver code release is far more significant. Nevertheless, Courbot cautions that “although very exciting, this effort is still experimental.”
The first part of the patch series adds support for platform devices, extending Nouveau beyond the desktop (PCI devices) to other technologies. This is somewhat independent of specific GK20A support, says Courbot. The second part updates existing subdev/engine drivers to support GK20A and adds a simple memory driver that simulates dedicated video memory. The last two patches add support for probing GK20A.
The 32-bit Tegra K1′s Mobile Kepler GPU is a variation on Nvidia’s desktop-level Kepler engine. The 192-core GPU offers better graphics performance than the Nvidia GeForce-driven PlayStation 3, and is even more powerful than Nvidia’s desktop-oriented GeForce 8800 GTX graphics card, according to the company. Mobile Kepler also adds a new low-power inter-unit interconnect and mobile optimizations that greatly reduce power consumption, says Nvidia.
The Tegra K1 also provides unprecedented API support compared to earlier Tegras. This includes support for Khronos’s new OpenGL 4.4 graphics specification, as well as OpenGL ES 3.0 and DirectX 11
Nvidia isn’t alone in making mobile processors and GPUs with proprietary binary graphics drivers lacking open documentation. Tegras, however, have been especially tough nuts to crack.
The experimental Tegra K1 GPU patch code is available now for free download. More information may be found at the Freedesktop.org patch release announcement.