In my release day post, I mentioned that the new Intel drivers has some serious performance issues that were going to keep me from upgrading my laptop. Well, if you like to fiddle and aren’t afraid of kernel installs, the wait for good performance may be over.
In case you weren’t familiar with the current crop of issues, here’s a good summary taken from the performance guide:
- The current driver in our repository has some performance issues with the EXA acceleration method. Users will notice 2D performance is poor due to the default “migration heuristic” employed by EXA (to “always” migrate pixmaps), but this causes performance issues for many users. Setting the heuristic to “greedy” alleviates this problem somewhat. See “man exa”.
- The new and faster acceleration method (UXA) is not enabled by default, due to issues reported by many users. This code is being actively developed, and many stability and performance issues have been resolved in the latest drivers (specifically within the intel driver, libdrm and the latest kernel 2.6.30-rc2). Unfortunately, Jaunty will not include the latest versions necessary to improve performance.
- 3D performance has regressed compared to the Intrepid release, possibly due to major code changes that have resulted from the introduction to the new acceleration and memory management code (UXA, GEM, DRI2). Due to these changes, there seems to be some regressions in the “legacy” DRI acceleration.
- Either Xorg or the “intel” driver seems to be suffering from a bug in which the memory region allocated for the graphics card is not set up with the proper type of caching. This results in jerky video playback of almost any content (from 720p media, all the way down to simple 320×240 mpeg content), and a potential loss of performance for other 2D and 3D operations.
The way to fix it involves installing the latest 2.6.30 kernel, updating your graphics drivers from the xorg-edgers PPA, turning on UXA acceleration in your xorg.conf, and fixing an MTRR prefetch issue with a script that has to run every time you start an X session.
The guide assumes Ubuntu, but should work for any Debian based distribution. Clearly, this is a pretty complicated solution, and I wouldn’t suggest it on a mission-critical system, or for the casual dabbler (unless you are okay with the possibility of having to reinstall).
My only Intel-based system is my laptop, which I share with my wife. She’s much more likely to get frustrated with a system that doesn’t “just work” than I am, so I am not going to go this route just yet.
If you try it, let me know how it goes!