The Nouveau Kepler Gallium3D code
that was published yesterday does indeed work for allowing OpenGL acceleration on the GeForce 600 series using this reverse-engineered open-source code. In an odd story to end out the weekend, the Nouveau Kepler graphics driver consumed nearly 120GB of hard drive space while running this open-source driver on the NVIDIA GeForce GTX 680.
I've got the NVIDIA GeForce GTX 680 (GK104) up and running on Nouveau with OpenGL (currently GL 2.1 compliance) when using the latest Nouveau kernel (Linux 3.4-rc2+ and some not-mainline patches as of this weekend), Mesa 8.1-devel from Git master as of Sunday morning, the new libdrm
, and xf86-video-nouveau DDX from Git. Additionally, for this very early Kepler support, the Linux system needs to be booted with nouveau.noaccel=0
and the FUC microcode needs to be first extracted by loading the NVIDIA binary driver on the hardware while MMIOtrace is running to trace register writes. With the register dumps, the hardware can be properly initialized for acceleration until the Nouveau camp comes up with their own self-generating alternative as they have done with previous generations of hardware. (It's the same as the initial hurdles with Fermi
from last year.)
I've encountered some random bugs with the initial Nouveau Kepler code but overall it's in great shape for being a community, reverse-engineered driver for hardware that only began shipping last month. As it builds upon the Fermi "NVC0" driver, it's not too much of a surprise, and currently in better shape than the official open-source AMD Radeon HD 7000 series driver with its new Gallium3D driver
that is still in the early stages of development.
The performance of the GeForce GTX 680 on Nouveau is quite slow compared to the binary blob, but that's not much of a surprise. There's no support at all for re-clocking on Kepler right now within Nouveau, so the driver is just running the card at whatever the BIOS default is upon boot; Nouveau can't even properly read the clock frequencies yet on this new hardware. As a result, the graphics core, shader processors, and video memory are all running at significant reduced speeds. Initial benchmarks though of the GeForce GTX 680 on Nouveau Gallium3D (and the GeForce GTX 680 Linux review itself) will be published in the coming days.
There was also one rather odd (and certainly temporary) bug when trying out this code: it filled up the hard drive of the test system. The Nouveau driver caused about 120GB of space to be filled up when it was running OpenGL. This morning the Intel Core i7 990X Gulftown Extreme setup had a clean install of Ubuntu 12.04 to its 160GB SATA HDD, the Nouveau Git stack was built, and testing commenced. When then finding the graphics tests failing after an hour or two and seeing disk full messages, this was quite a surprise.
How the heck did the Nouveau driver chew through all the available disk space? It was spamming the system to hell with useless interrupt messages, to the point that in just an uptime of less than two hours there was nearly 120GB in kernel logs from the Nouveau DRM kernel driver.
Fortunately that issue should soon be fixed and for now there is a patch to workaround this excessive reporting issue.
The GeForce GTX 680 findings under Linux are coming up soon.