Kernel Log: Coming in 3.4 (Part 3) - Graphics drivers
by Thorsten Leemhuis
Linux 3.4 includes a whole host of changes to drivers for AMD, Intel and NVIDIA graphics chips. The new kernel, expected to be released later this month, also contains a new USB DisplayLink driver and lays the foundations for better support for hybrid graphics technologies such as NVIDIA's Optimus.
Linux 3.4 sees the nouveau DRM/KMS driver – classed as a staging driver up to now, though located in the DRM subsystem since its inception – finally bid farewell to staging status. This means that any future changes to the interfaces that the kernel offers to the nouveau drivers in libdrm, Mesa 3D and X.Org will need to be backwards-compatible.
Nouveau's de-staging was a surprise and was undertaken in conjunction with a further highlight of Linux 3.4. Just hours after NVIDIA released its GeForce GTX 680 graphics card, kernel developers added rudimentary support for it to the nouveau DRM/KMS driver. Initially this only enabled basic functionalities such as setting common display modes; among them standard widescreen display resolutions which are not supported by the VESA driver.
Current state of development
Definite information on when this Linux kernel will be completed is as ever lacking. On releasing the sixth pre-release version on Sunday night, however, Torvalds did note that final Linux 3.4 was "getting close". A few days later he indicated plans for a "nice calm -rc7".
A few days later, experimental extensions were added to the nouveau code in libdrm and X.Org enabling them, in conjunction with the DRM/KMS driver in Linux 3.4, to offer 2D and Xv acceleration on the GeForce GTX 680. A little after that, changes were merged into Mesa 3D's nouveau ncv0 driver. Up to then the driver had only dealt with Fermi graphics chips, used on cards including GeForce 400 and 500 series. The changes mean that the Mesa 3D driver now also supports the GTX 680's NVE4/GK104 Kepler chip, with which NVIDIA has ushered in the switch from the Fermi to the Kepler architecture. Further graphics cards with Kepler chips have since been released, but will not be supported in Linux 3.4.
It's likely to be several months before the major Linux distributions include all of the components required for the GTX 680. It's also likely to be some time before they are able to utilise this card's acceleration functionality out of the box; for that to happen someone first needs to write some open source firmware for it. As with some of the more recent Fermi graphics chips, at present the acceleration functionality offered by the first Kepler GPU can only be used with firmware extracted from NVIDIA's proprietary graphics drivers.
NVIDIA's drivers have supported the GTX 680 since version 295.33, which was released in tandem with the graphics card. This driver also supports the card's power management and fan control features that the nouveau driver, even on older NVIDIA graphics chips, supports in a rudimentary fashion, if at all.