Running The NVIDIA GeForce GTX 680 On An Open-Source Driver

Written by Michael Larabel in Display Drivers on 26 April 2012 at 11:47 AM EDT. Page 1 of 4. 11 Comments.

Thanks to clean-room reverse-engineering, it is already possible to run the NVIDIA GeForce GTX 680 "Kepler" graphics card on a fully open-source graphics driver complete with OpenGL acceleration. Here are the first benchmarks of this work-in-progress, community-created open-source GeForce 600 series graphics driver.

As mentioned on the NVIDIA GeForce GTX 680 launch-day back in March, the Nouveau project that seeks to clean-room reverse-engineer the closed-source NVIDIA driver in order to write an open-source alternative, had a huge set of surprises. Two of the Nouveau developers managed to get their hands on two GeForce GTX 680 graphics cards before launch. As a result, and since the NVIDIA driver changes from the GeForce 400/500 "Fermi" to GeForce 600 "Kepler" series were not too invasive, they managed same-day open-source driver support.

The Nouveau developers already merged their Kepler driver changes into the Linux kernel and then once the Nouveau libdrm re-write landed in mid-April, they merged their Nouveau Kepler Gallium3D code. This published code already allows for OpenGL 2.1 acceleration on Kepler graphics processors with this fully open-source driver, but there is still a lot of work left.

Like the other GeForce hardware on the Nouveau driver, the developers still working out proper re-clocking support, proper power/fan management, OpenGL 3.0+ support, merging OpenCL, etc. Additionally, the open-source Kepler support currently requires closed-source firmware for operation. In order to obtain this Kepler firmware/microcode, the official NVIDIA Linux driver must first be loaded on the hardware while running MMIOtrace within the Linux kernel to trace register writes, following by dumping the traces back into certain files in order to come up with this "FUC" microcode. This is a temporary issue and in a future Linux kernel release there should be a better solution, similar to the initial Nouveau Fermi FUC microcode situation.


Related Articles