Intel Graphics Performance Guide for Ubuntu 9.04 (Jaunty) Users

Sponsored Link

Some users are experiencing performance issues with Intel integrated graphics chips in Jaunty, for several reasons:

  • 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,mesa and the latest kernel 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.

There are three possible configuration that this guide will present:

Safe Configuration

  • For this configuration, you will upgrade to the latest stable Xorg drivers (via the X-Updates PPA), enable UXA acceleration and create a workaround for the MTRR bug. This is the solution recommended for users who possess hardware devices that depend on a restricted driver. If you don't know what this means, then this is the solution you should use.

Optimal* Configuration

  • This configuration is identical to "Safe", but includes the 2.6.30 kernel. Using this kernel will improve 3D performance for many users, but you will lose access to restricted kernel drivers. This configuration yields the best results for my system (an 855GM chipset), but of course, your experience may differ.

Bleeding-Edge* ConfigurationThis configuration is the most risky. This will enable repository which contains bleeding-edge mesa & Xorg drivers which are continually updated (via the xorg-edgers PPA), enable UXA acceleration, create a workaround for the MTRR bug and install kernel 2.6.30. This configuration is not necessarily the fastest (in fact, the Optimal configuration is fastest for my hardware), and is recommended only for users who want to test the latest Xorg code.
Note: As per the PPA maintainer's wish, you are instructed to read the instructions here, since the Bleeding-Edge repository is prone to breakage and important instructions may be added. Don't request support for these packages (and don't be surprised if questions are left unanswered).

The solution

More Updated instructions and support check here

Method 2

Using default Jaunty packages and kernel

The following procedure confirmed working on following Intel graphic cards

00:02.0 VGA compatible controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)

00:02.0 VGA compatible controller [0300]: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller [8086:2a02] (rev 03)

00:02.0 VGA compatible controller: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller (rev 03)

00:02.0 VGA compatible controller: Intel Corporation 82845G/GL[Brookdale-G]/GE Chipset Integrated Graphics Device (rev 03)

1)Discovering the memory of your card; do this command:

lspci -vv

and search in the output for the block regarding VGA; in my case:

00:02.0 VGA compatible controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)
Subsystem: Fujitsu Siemens Computers Device 106a
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx+
Latency: 0
Interrupt: pin A routed to IRQ 16
Region 0: Memory at d8000000 (32-bit, prefetchable) [size=128M]
Region 1: Memory at e0380000 (32-bit, non-prefetchable) [size=512K]
Region 2: I/O ports at ec00 [size=8]
Capabilities: <access denied>
Kernel modules: intelfb

In red you can see the amount of the memory that your card can manage and in blue the non-prefetchable memory. In order to use the video card memory in the correct way, you can use Videoram option in xorg.conf; but we must calculate the ram from MB to KB in order to use it in Videoram option; here the table:

16 -> 16384
32 -> 32768
64 -> 65536
128 -> 131072
256 -> 262144

Now we have to subtract the value of non-prefetchable to our amount of ram; in my case:

131072 -- 512 = 130560

2)As soon as you calculate your video ram minus the non-prefetchable memory, you can modify your xorg.conf in the device section:

sudo gedit /etc/X11/xorg.conf

In my case the device section is configured like this:

Section "Device"
Identifier "Configured Video Device"
Driver "intel"
Option "AccelMethod" "UXA"
VideoRam 130560

Please be sure that VideoRam matching the ram of Video card based on what you calculate above. Of course the option UXA is mandatory too.
Save xorg.conf

3)If you are using Compiz, please modify these settings using Compiz manager:


Choose General options -> General -> remove the flag on Unredirect Fullscreen Windows

Choose General options -> Display Settings -> remove the flag Sync To VBlank

Close ccsm

4)Reboot your system

Sponsored Link

You may also like...

78 Responses

  1. Lindomar says:

    On AA1 I got lower glxgears and compiz benchmark, so I decided to go back.

    For the mtrr bug I found those sources:

  2. Andy says:

    Guys, watch out with the quotes around the Option “Tiling” line – they’re formatted in a way that breaks the config file if you cut and paste directly from the example.

  3. Andy says:

    I found that I no longer had access to the function keys on my Lenovo laptop after following these steps. I expect its down to the kernel.

  4. Santiago says:

    After restarting my computer and looking at /proc/mtrr it appears that the missing line according to the bug report (wasn’t their before) was added automatically. I have an intel 945GM on a Toshiba satellite.

  5. Santiago says:

    Also my penguin racer fps quadrupled, was 14 fps now is 60 fps.

  6. Ravnidran K says:

    You rock!!! it works!!

  7. John says:

    Thanks for the tips. I have a Fujitsu Siemens PI1505 laptop with 945GM graphics. Everything worked perfectly. With the xorg.conf settings, make sure every quote mark is a typed quote mark (replace the quotes in the text with typed shift-2 double-quotes). Billiards-GL works well enough and BBC Iplayer in full screen and high-definition works well enough. Good work.

  8. Adrian Bona says:

    It works! Got an Inspiron 1318. Thanks a LOT!

  9. mg says:

    The following worked for me:

    install newest intel drivers (2.7) from the ubuntu x-updates video drivers ppa:

    edit xorg.conf to enable uxa and disable tiling (as described in article)

    Option “AccelMethod” “uxa”
    Option โ€œTilingโ€ โ€œfalseโ€


  10. Lee says:

    FYI, 2.6.30rc2 as packaged at seems to disable AppArmor.

  11. jnugz says:

    hey guys after installing the fix, i rebooted, everything works finegraphics are MUCH better. but now my wireless driver is not loading with the new kernel. any help?

  12. realgt says:

    @mg thanks that worked for me (didn’t have to do a kernel update, thankfully)

  13. Mark Peters says:

    The second method worked great for me. For me, I had two non-prefetchable memory entries:

    Region 0: Memory at d0200000 (32-bit, non-prefetchable) [size=512K]
    Region 1: I/O ports at 5088 [size=8]
    Region 2: Memory at c0000000 (32-bit, prefetchable) [size=256M]
    Region 3: Memory at d0300000 (32-bit, non-prefetchable) [size=256K]

    I subtracted both (768K) and everything seems to be working great.

    Also, I started by disabling Tiling but have since reenabled it without any noticable issues.

    Thanks again!

  14. Oded says:

    Is it possible to use the rc3 kernel as well?

    The reason I’m asking is that I’d always rather install packages from repositories so I can stay up to date and receive bug fixes and security updates, so if I’m going to install a new kernel I’d rather track the ppa instead of doing it ad-hoc.

  15. Roshan Pius says:

    After the above steps, my fps count in penguin racer almost trebled and even the desktop effects work much more seamlessly. The desktop feels much more responsive also.The only minor irritant is that i’ve lost my usplash screen when loading into this new kernel.And also i felt the boot time was just slightly longer than the stock kernel.

  16. Martin Juhl says:


    Region 0: Memory at d0200000 (32-bit, non-prefetchable) [size=512K]
    Region 1: I/O ports at 5088 [size=8]
    Region 2: Memory at c0000000 (32-bit, prefetchable) [size=256M]
    Region 3: Memory at d0300000 (32-bit, non-prefetchable) [size=256K]

    on my macbook too… When I enable UXA.. no matter what I do.. the machine keeps freezing, with the only thing movable is the mouse…

  17. n says:


    I’m also have this problem ๐Ÿ™ I’m trying to find a way of fixing it now. What wireless card do you have?

  18. tomas says:

    I had an exactly oposite problem on my HP Pavilion: before applying the solution number two I used to have regular freezes, with or without being able to move the mouse.
    since enabling UXA I didn’t have any, though I haven’t noticed any significant video performance gains. crashes are gone anyway…

  19. stevoo says:

    Any idea when a permanent solution to the intel graphic cards driver will be out ?

    i am still having several issues with splitting the screen and tv out as well as opengl.

  20. Alex says:

    Thanks for the tips, I’ve now got the video on my inspiron 6400 working with the same responsiveness as it had with Intrepid. (The chipset is 945GM/GMS.)

    The changes to xorg.conf that you suggested (in method2) didn’t work for me though, and I ended up following links from this page to where they suggest the hack of updating /proc/mtrr from an init script.

    That worked! So I’m no wiser, but I’m happy now ๐Ÿ™‚

    FTR, the line I added to /etc/rc.local was

    echo ‘base=0xd0000000 size=0x10000000 type=write-combining’ > /proc/mtrr

  21. watubu says:

    Works but the mtrr fix.
    I’ve a screen crash if I applied the fix,
    I’ve remove it from my rc.local.

    Packages upgrade and Xorg edit fix my problems.

    I don’t need to change mtrr conf (and I must not! or I crash)
    The reason is it seems to be corrected in the package.
    (reg03 is already here)

    $ cat /proc/mtrr
    reg00: base=0x000000000 ( 0MB), size= 1024MB, count=1: write-back
    reg01: base=0x03f800000 ( 1016MB), size= 8MB, count=1: uncachable
    reg02: base=0x03f700000 ( 1015MB), size= 1MB, count=1: uncachable
    reg03: base=0x0d0000000 ( 3328MB), size= 256MB, count=1: write-combining

  22. Mosh says:

    Note that the rc2 and rc3 kernels don’t include drivers for Broadcom (and possibly other) wifi cards. From what I’ve read elsewhere you’ll need to obtain these drivers and compile them into the kernel before installation – quite a pain in the butt, especially if you don’t know about it before you install.

    Does anyone know when these fixes will be compiled into a proper release through the repositories? Given that a solution is known, I’m surprised it a) made it into a release in the first place and b) hasn’t been rectified correctly.

  23. Kenneth Nielsen says:

    Hey everyone

    I went into this problem on my work computer after upgrading, which I must admit really is a thorn in the eye concerning Ubuntu reputation. Anyway I applied the fix and it works.

    My questions now is. Does anyone know if and when this will be fixed via official channel, because the current state is quite embarrassing.

    Regards Kenneth Nielsen

  24. MikeDK says:

    Like to know how you guys get the lspci -W to work, dosnt work here, and not as root either.

    running RC3 kernel atm Jaunty i386 on a thinkpad X40

  25. MikeDK says:

    oooh got it, its double v

  26. TBI says:

    Just want to say thanks for writing up this solution.

    It had been bugging me since I had first installed jaunty over my previous intrepid.

    My ‘resting framerate’ would hover at around 15 occasionally peaking at 25 or so and I was about ready to format the partition and start again with something else but following your instructions had got my ‘resting framerate’ up to a healthier, stable 140.

    Thanks again.

  27. Reed says:

    Performing method 2 on a Thinkpad X40 with GMA855 lead to further slowdown (ppracer dropped from 30fps for Jaunty stock to ~20fps) and terribly corrupts the Ubuntu Netbook Remix Launcher to the point of unsuitability.

  28. yuriy says:

    the first method worked ok. thanks.

    but now i have another problem. When i am tryoing to install any package i get an error about dependencies. even update-manager refuses to work.
    Any solution for this problem ?

Leave a Reply

Your email address will not be published. Required fields are marked *