Does A Greedy Intel Driver Improve Performance?
As we have outlined before and shared benchmarks of in the past, the Intel graphics driver stack has been going through some significant changes. The Intel graphics driver now has a proper memory manager in the form of the Graphics Execution Manager, there is upstream kernel mode-setting support, and a new 3D component is coming soon in the form of Gallium3D. With all of this invasive work going on, regressions are currently prevalent from stability problems to graphical corruption to slower 2D performance. While these are problems users will face with the new distribution updates in H1'09, some have been trying out different driver configurations in order to circumvent the situation. Canonical, for example, had been toying with the idea of enabling greedy migration heuristics by default.
The migration heuristics deal with how pixmaps move to video memory, but when operating under the greedy mode, some acceleration routines are avoided, where some of the current performance problems seem to be taking place. This problem should ultimately be corrected in EXA and UXA, but for now, Canonical's Bryce Harrington has been considering setting the migration heuristics to greedy in order to increase the xf86-video-intel 2D performance. The MigrationHeuristics option can be set to greedy in the xorg.conf file.
To see how much of a difference the greedy migration heuristics make, we decided to test out the different driver options. Using X Server 1.6 with the latest xf86-video-intel 2.6.3 driver from Ubuntu 9.04, we ran a set of benchmarks when the driver was using its default EXA acceleration method, EXA with the greedy migration heuristics, UXA acceleration, and then when reverting to the older xf86-video-intel 2.4.1 driver and using EXA acceleration. Previously we have found that UXA to offer faster performance, which is based upon the EXA API but uses the Graphics Execution Manager for managing its pixmaps.
Our test system consisted of a Dell Inspiron Mini 9. The Dell Inspiron Mini 9 was loaded with an Intel Atom N270 processor, Intel 945 graphics, an 8GB STEC PATA SSD, and (compared to our earlier Mini 9 articles) it now had 1GB of DDR2 system memory. We were using a clean installation of Ubuntu 9.04 (i686) with the Linux 2.6.28 kernel, GNOME 2.26, X Server 1.6.0, xf86-video-intel 2.6.3 / xf86-video-intel 2.4.1, Mesa 7.4, and were running at the native resolution of 1024 x 600. Compiz remained active by default during testing.
To look at the 2D performance with the EXA, EXA Greedy, UXA, and 2.4 EXA options, we used the QGears2, GtkPerf, x11perf, and JXRenderMark profiles available through the Phoronix Test Suite.