Ubuntu 9.04 and Intel graphics
by Dr. Oliver Diedrich
For Linux users who don't need absolute top-notch 3D performance, Intel is considered the preferred graphics solution, not least because the company develops its drivers as open source within the framework of the X.org project. However Intel’s drivers are currently in a state of some disarray.
Ubuntu 9.04 has arrived and includes the latest software and a whole series of interesting new features, including a much faster boot process. My enthusiasm for the new release is, none-the-less, a little muted, and all because of a single driver: the driver for Intel graphics chips. As the Ubuntu development team freely admits in its release notes, under Ubuntu 9.04 the Intel driver has "performance regressions". In plain English this means that graphics on Intel chips are slower in the new release and that on some chips the X Server may even freeze – though there is at least a workaround for the latter problem.
The problem can manifest itself through various symptoms. Ubuntu users have reported that Flash videos in full-screen mode are jerky, 3D games run unacceptably slow, the desktop is barely usable with 3D effects activated and, in extreme cases, even moving a window can be so slow that the computer becomes almost unusable. We have also observed some of these effects in tests on various Intel graphics chips.
The Intel graphics driver is certainly something of a work in progress at present, as indeed the developers are well aware. In kernel version 2.6.28, the kernel used in Ubuntu 9.04, the Graphics Execution Manager (GEM) has migrated to the kernel. This should simplify and improve the efficiency of X Server memory management, but requires some changes to graphics drivers.
Another change to the kernel has been made in the latest kernel, version 2.6.29, which the Intel driver is likewise already coded to deal with: kernel-based mode setting (KMS). What sounds fairly unspectacular – instead of X Server, the kernel now deals with configuring the graphics mode – exerts a dramatic effect on graphics drivers. According to Intel developer Keith Packard, around half the code in Intel's Linux graphics driver is responsible for mode setting.
Then there's Direct Rendering Infrastructure 2 (DRI2), which is intended to replace the old system for 3D acceleration. Finally, Intel has developed a new 2D acceleration architecture going by the name of UXA, which takes advantage of the changes introduced by the Graphics Execution Manager. UXA is set to replace EXA and the even older XFree86 Acceleration Architecture (XAA).
As Packard helpfully calculates – GEM or no GEM, mode setting in the kernel or by the driver, four different 2D (none, XAA, EXA, UXA) and three different 3D (none, DRI, DRI2) acceleration options gives 48 theoretical combinations the driver needs to cope with (although some combinations are in practice not achievable, since, for example, UXA requires GEM and DRI2 is not compatible with EXA). There is also a further difficulty – the driver must control a wide range of Intel graphics chips and different versions of these chips. This makes systematic testing nigh on impossible.
Ultimately the aim of all this development is to use GEM, kernel-based mode setting, DRI2 and XUA to slim down the driver and improve graphics performance. The problem lies in the transition – kernel versions prior to 2.6.29, which are without KMS or both GEM and KMS, are still deployed in almost all current distributions.
It is into this crucial transition phase that Ubuntu 9.04 has stumbled. GEM is in there, KMS is out, EXA and DRI are disabled, UXA and DRI2 are still wobbly and no-one seems to know what combination runs with good performance and stability on which chip. The long list of contradictory experiences found in Ubuntu's UXA testing doesn't hold out much hope that an answer will be forthcoming any time soon. Consequently the recommendations in the Ubuntu release notes remain vague – "Some users have found improved performance by ...", "... provides significant performance improvements in some cases", "risk of severe stability problems". Users experiencing these problems have no alternative but to try out the various suggestions and hope for an improvement without unacceptable side effects. There is also a troubleshooting guide offering some tips.
However this all affects just a single driver and these things happen when you're cutting out the dead wood, don't they? Well, yes, but. Intel graphics have been recommended for Linux users who don't need top-notch 3D performance for several years, because Intel has been a model company in developing its driver as an open source driver within the scope of the X.org project. Nvidia and AMD chips, by contrast, require proprietary drivers and have their own quirks – which, in the absence of the source code, the kernel and X developers can't even attempt to diagnose.
Additionally, since the introduction of its Centrino platform in early 2003, Intel has been continuously increasing its share of the laptop graphics market, so that now every second laptop contains an Intel graphics chip. Whilst with desktop PC that has integrated Intel graphics you can, in an emergency, fit a cheap AMD or NVIDIA card from the bargain bin, with a laptop you have to live with the on-board graphics.
The only hope is that the developers succeed in rapidly getting to grips with the problem and that Ubuntu is quick to get out any resulting updates – otherwise the distribution's good name could suffer.