Kernel Log: What's coming in 2.6.28 - Part 4: Improved graphics support
Two collections of patches (1, 2) proposed by the maintainer of the Direct Rendering Infrastructure (DRI) have incorporated numerous graphics hardware support improvements into the main development branch. This is the development branch which will produce Linux version 2.6.28 at the end of this year or at the beginning of next year.
The developers included the Graphics Execution Manager (GEM) which takes over some of the graphics drivers' memory management tasks and co-ordinates the access to the graphics chip's processing units; this is designed to take care of some limitations in the current driver design and to improve performance. GEM was started several months ago by Intel developers as a short term alternative to Translation Table Maps (TTM), the memory manager by Tungsten Graphics which was originally intended for this job – a driver which is now much less likely to become a standard component of Linux kernel. So far, only the recently released version 2.5.0 of the X.org "intel" graphics driver uses GEM; some developers of the X.org "radeon" graphics driver are also working on an experimental driver which makes use some of the GEM's functionality.
Also added to the official Linux kernel have been extensive improvements to the Vblank mechanism. With these changes, AMD and Intel graphics chips operating in 3D mode will only trigger interrupts when a program is waiting for a Vblank event, avoiding such visible effects like display flickering. Due to the lower number of interrupts, the system processor can stay in deep sleep longer while there are no other processing requests – this lowers the power consumption of modern CPUs and prolongs the battery life of netbooks and notebooks.
Since Intel released the ACPI Integrated Graphics Device OpRegion Specification under a Creative Commons Attribution licence several weeks ago, support for this technology has now been added to the kernel. In recent notebooks with Intel graphics chipset, the display brightness can now be adjusted via ACPI, and has been successfully tested by the developers on a Thinkpad T61 and a HP 2510p. The new code also improves the interception and forwarding of function key events for switching display outputs.
Eric Anholt talks about the newly integrated kernel technologies and other developments around the Intel graphics driver in a blog entry. A feature that has not made it into the kernel yet is Kernel Mode Setting (KMS). This is designed to considerably speed up the switching between text consoles and the X Server and eliminate the related flickering that is currently clearly noticeable. It also gives the kernel more control over the graphics chip. This in principle enables the kernel to switch to a text console and display error messages there if a critical error in the X Server is encountered – a function that was mockingly dubbed the "Blue Penguin of Death" by some developers.
Other commits related to the support of graphics hardware that have been included in the main development branch of Linux:
- agp/amd-k7: Suspend support for AMD K7 GART driver
- drm/radeon: add support for RS740 IGP chipsets.
- radeon: add RS400 family support.
- i915: Disable MSI on GM965 (errata says it doesn't work)
- separate i915 suspend/resume functions into their own file
Further background and information about developments in the Linux kernel and its environment can also be found in previous issues of the kernel log at heise open:
- Kernel Log: New Atheros WLAN drivers and stable kernels, radeon vs. radeonhd
- Kernel Log: What's coming in 2.6.28 - Part 3: Dodgy drivers
- Kernel Log: More than 10 million lines of Linux source files
- Kernel Log: Coming in 2.6.28 - Part 2: network infrastructure and network drivers
- Kernel Log: Coming in 2.6.28 - Part 1: ATA support and block layer