Nouveau Developers Begin Reverse-Engineering NVIDIA Turing Driver Support

Written by Michael Larabel in NVIDIA on 20 September 2018 at 07:54 AM EDT. 17 Comments
NVIDIA
The NVIDIA GeForce RTX 2080 graphics cards are only officially beginning to ship today, but at least one independent Nouveau developer already has his hands on the hardware and beginning to work on the clean-room, driver reverse-engineering process in order to eventually get open-source "Nouveau" driver support working.

Just as they do each cycle, it's generally a lengthy bring-up process for getting this open-source NVIDIA Linux driver supporting new hardware... Starting with getting the display lit-up and kernel mode-setting active followed by the eventual OpenGL/3D hardware acceleration, which since GTX 900 Maxwell GPUs has required NVIDIA to release signed firmware images. The actual KMS/display bring-up has generally been fairly quick but we'll see soon enough if much has changed on the display side for Turing.

As NVIDIA has also been doing for a few generations now, it seems they have sent out hardware early to a few Nouveau developers while on the desktop side their official stance has remained to not actively help nor hinder these developers in open-source Nouveau support... They generally seed the main Nouveau developers with hardware access, answer some questions where they can over the driver programming, and occasionally we see some sort of documentation dump out of NVIDIA. But for the most part it's good 'ole reverse-engineering to get this NVIDIA GeForce support in place (on the Tegra side is where NVIDIA actively contributes to open-source GPU driver support).

Independent Nouveau contributor Rhys Kidd who has previously worked on GP100 Pascal support and more seems to have Turing GPU access now and has sent out some initial Turing patches adding support to Envy Tools.


Yesterday he posted initial Turing patches for Envy Tools, the tool-set used by Nouveau developers for helping to reverse-engineer the behavior of the NVIDIA proprietary Linux driver. Envy Tools has tools for help in understanding their video bitstream, accessing NVIDIA GPU registers, Assembly parsing, databases of MMIO registers, memory structures, and other documents and tools.

The patches by Rhys Kidd has initial TU102/TU104 detection, GDDR6 video memory detection, and other initial bits. So far though I haven't seen any patches in his Linux Git tree or that of Nouveau DRM maintainer Ben Skeggs for providing any actual driver support for Turing GPUs.

It's likely a tall order hoping to see any KMS/display support for Turing in the next kernel cycle (Linux 4.20~5.0) while for any hardware acceleration is an unknown, especially depending on how long it takes NVIDIA to publish the signed Turing firmware images. For now though due to the whole re-clocking mess, the best Nouveau driver support is still with the GeForce GTX 600/700 "Kepler" GPUs.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week