NVIDIA GeForce 600 "Kepler" On Open-Source: It's Uselessly Slow

Written by Michael Larabel in Display Drivers on 8 January 2013 at 11:08 AM EST. Page 1 of 5. 27 Comments.

With the Linux 3.8 kernel that's presently under development, the open-source reverse-engineered Nouveau driver for supporting NVIDIA graphics processors has seen some significant changes. One of the late changes was enabling Kepler acceleration support. While there is now an "out of the box" open-source GPU driver that supports the GeForce 600 GPUs with 3D/OpenGL acceleration, it's incredibly slow.

When it comes to supporting the NVIDIA GeForce 600 "Kepler" family with an open-source Linux graphics driver, it turned out relatively better than past generations of NVIDIA hardware with the community-maintained driver. NVIDIA still put out its same-day binary graphics driver for supporting the GeForce 600 graphics cards, but the open-source community was quick this time with initial hardware enablement.

The GeForce GTX 680 launched in March and the Nouveau project had same-day surprises. Two Nouveau developers managed to get their hands early on two GTX 680 graphics cards and were able to provide same-day mode-setting support for the NVIDIA Fermi successor within the Nouveau DRM driver. The GeForce 600 "Kepler" has its differences from the GeForce 400/500 "Fermi" GPUs, but still the Nouveau developers were able to quickly work through the differences. It was also at the same time the developers decided Nouveau would leave the Linux kernel staging area.

Days after the GeForce GTX 680 launch and when they had kernel mode-setting working for the new hardware, they published the "NVE0" Kepler Gallium3D driver. Running the new hardware on open-source worked! However, the performance was slow and like usual the initial implementation required first loading the NVIDIA binary driver and using MMIOtrace to create some "FUC" microcode dumps. Manually generating these microcode files are necessary for enabling hardware acceleration.

In September, the Kepler FUC was freed so that the Nouveau DRM could generate its own necessary microcode and not rely upon the user needing to first initialize the hardware with the binary blob to generate the microcode dump. In December, the Nouveau support advanced to supporting the GK106 GPU.

Now with the forthcoming Linux 3.8 kernel, everything is fixed up where its own self-generating microcode is working sufficiently and the support is stable enough that the hardware acceleration can be enabled by default. So now if using the Linux 3.8 kernel and modern Mesa (namely, Git master for Mesa 9.1/10.0), there is out-of-the-box OpenGL accelerated support for the NVIDIA GeForce 600 series graphics cards.


Related Articles