Linux 3.4 will support GeForce GTX 680 and Southern Islands GPUs
About eight hours after the introduction of the GeForce GTX 680, rudimentary support for this NVIDIA graphics card has been added to the Nouveau DRM/KMS driver in the Linux main development branch. At the beginning of the week, the developers began to prepare this branch for Linux kernel version 3.4, the release of which is expected at the end of May. With version 3.4, Nouveau will also cease to be rated as a staging driver.
The collection of patches that implements these changes only introduces a net 102 new lines of code; however, the resulting extended driver is only capable of setting typical screen modes ("modesetting") in the GTX 680. This allows live versions of Linux and the installers of Linux distributions to set a screen resolution that is suitable for modern monitors, which is often impossible with standard VESA drivers. Such adjustments could also be made by using NVIDIA's proprietary driver, but most distributions don't add this driver to their installation and live images because of potential licensing issues.
The GTX 680, powered by a chip known as the GK104 or NVE0, is the first graphics card with a graphics core from NVIDIA's "Kepler" generation. How Ben Skeggs, who works on the Nouveau drivers for Red Hat, managed to modify the Nouveau driver for the Kepler architecture in such a short time remains unclear – he may have had advance access to such a card. The modification work necessary may also have been relatively small because some of the recent graphics chips in NVIDIA's Fermi generation handle monitor control through various functional blocks that are thought to be quite similar to those of the Kepler chips.
Full Kepler support is available in version 295.33 of the proprietary graphics drivers for x86-32/ix86 and x86-64/x64 Linux, which NVIDIA released in parallel with the GTX 680 yesterday. It will probably be a while before the kernel's Nouveau DRM/KMS drivers and the Nouveau driver in Mesa offer 3D support for Kepler chips: the developers of the open source drivers need to establish the required programming information through reverse engineering, because NVIDIA doesn't supply them with any information whatsoever. AMD and Intel, on the other hand, do provide information and even actively promote the development of free Linux drivers.
However, support for the Radeon HD 7970, which was introduced back in December and is a competitor to the GTX 680, was only released by an AMD developer earlier this week. Linus Torvalds has now also integrated these driver extensions into the main development branch of Linux. They will allow Linux 3.4 to support the graphics cores of Trinity processors, which are expected to become available next week, as well as the mid-range graphics cards in the recent Radeon HD 7700 series; like that of the 7970, the graphics cores of the cards in this series belong to the Southern Islands generation. However, no 3D acceleration is currently available for the 7970. The most recent Kernel Log on The H offers further background information on these driver changes.
This edition of the Kernel Log also discusses other developments around the Linux kernel including an issue with the graphics drivers for Intel graphics cores that can lead to memory corruption when a system wakes up from hibernate/software suspend/ACPI S4.