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 2.6.29.4). 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
EndSection
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:
ccsm
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
Thank you so much, I tried method 2 and it worked like a charm.
being afraid of the first option i tried the second and it worked :] thanks a lot
Method 2 worked for me too.
I had already tried downgrading the intel driver to the intrepid version and while it was better, firefox and video playback performance was definitely sub par.
I upgraded back to the jaunty intel driver and followed the instructions for method 2. After rebooting, the performance was noticably better – and firefox was no longer jerky like before.
thanks!
Seems to work like great. I just had to change:
libdrm2_2.4.9-1_i386.deb to libdrm2_2.4.9-1_i386.deb
and
libdrm-intel1_2.4.9-1_i386.deb to libdrm-intel1_2.4.9-2_i386.deb
since the original ones were returning 404
Hi
I wanted to try the second method because it looked safe/easy to implement. But I am surprised to see amount of the memory that my card can manage. (1M)
I am pasting here the output of lspci -vv (VGA Block only).
00:02.0 VGA compatible controller: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (rev 03)
Subsystem: Acer Incorporated [ALI] Device 011d
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 2298
Region 0: Memory at f0000000 (64-bit, non-prefetchable) [size=1M]
Region 2: Memory at d0000000 (64-bit, prefetchable) [size=256M]
Region 4: I/O ports at 1800 [size=8]
Capabilities:
Kernel modules: intelfb
Please guide me.
Thank you! Thank you! Thank you!
Now I don’t regret upgrading to Jaunty anymore. This definitively made my day.
Tried running the “download the relevant packages” script and there are a *lot* of “404 not found” errors 🙁
Apologies – I missed the comment above. Changed that and also the final item to be downloaded needs to be changed to:
xserver-xorg-video-intel_2.7.1-1_i386.deb
as of May 15, anyway.
Thanks this worked great on my dell inspiron 1520
iplayer now runs full screen without jerky/ blocky playback. 🙂
I can confirm that method 2 also works on a rev01 82845G/GL[Brookdale-G]/GE.
I tried to set the compiz and redering is set to none.
Hence i tried this option thinking if i had any problems with my graphics card.
I tried the option 2 but after my reboot there is a message that system is running under low graphics mode. So i had reverted back
Kindly provide the solution
Tried the method 2 on my old Dell 700m with no luck. After rebooting, the display resolution changed from 1280×800 to a smaller one, probably 1024×768. Any clue?
Does not work for me. After reboot I get a black screen.
According to the explanation, I set VideoRam to 261120. See below my lspci output (my laptop is thinkpad t61):
00:02.0 VGA compatible controller: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (rev 0c)
Subsystem: Lenovo Device 20b5
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 2295
Region 0: Memory at f8100000 (64-bit, non-prefetchable) [size=1M]
Region 2: Memory at e0000000 (64-bit, prefetchable) [size=256M]
Region 4: I/O ports at 1800 [size=8]
Capabilities: [90] Message Signalled Interrupts: Mask- 64bit- Queue=0/0 Enable+
Address: fee0300c Data: 41c9
Capabilities: [d0] Power Management version 3
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Bridge: PM- B3+
Kernel modules: intelfb
HI,
Thanks for this post, I used method 2 (easy and lazy way I guess, LoL ) on my son’s PC, (IBM Netvista 2, — Intel Corporation 82845G/GL Rev.01) and it works great.
Thanks again guys,
Kojak.
Hi,
I tried method 2
it all went fine til I wanted to modify the xrog.conf
I found it like this
Section “Monitor”
Identifier “Configured Monitor”
EndSection
Section “Screen”
Identifier “Default Screen”
Monitor “Configured Monitor”
Device “Configured Video Device”
SubSection “Display”
Virtual 1280 1024
EndSubSection
EndSection
Section “Device”
Identifier “Configured Video Device”
EndSection
any ideas will be appreciated.
I hoped I wouldn’t have to touch xorg.conf ever again… well, at least everything is smooth now! Like most posters, the second method was the one I tried. Thanks.
00:02.0 VGA compatible controller: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller (rev 07)
Tried the second approach and worked well. Still not ‘great’ but back to usable.
Thanks a lot!
Thanks, tried method 2 and it works.
However I wasted some time on the copy pasted code:
Section “Device”
Identifier “Configured Video Device”
Driver “intel”
Option “AccelMethod” “UXA”
VideoRam 130560
EndSection
Because it did not work until later I figured “ (tilted double quotes) was used instead of ” (straight double quotes).
So changed it and it worked like a charm! 🙂
Section “Device”
Identifier “Configured Video Device”
Driver “intel”
Option “AccelMethod” “UXA”
VideoRam 130560
EndSection
By the way after I just posted the comment I realized that the site is to blame. It changed the straight double quotes to tilted/curved double quotes.
Many thanks.
I have tried option 2. Works like a charm.
Cheers
@Ittay I have the same problem. I tried method 2 and I had to revert back to the original xorg.conf. I’m considering just going back to 8.04 or the next Alpha. This is what I had in the device section:
Section “Device”
Identifier “Configured Video Device”
Driver “intel”
Option “AccelMethod” “UXA”
VideoRam 261120
EndSection
For the non prefetchable to subtrace, should I use Region 1 output or Region 3?
Interrupt: pin A routed to IRQ 16
Region 0: Memory at feb80000 (32-bit, non-prefetchable) [size=512K]
Region 1: I/O ports at ec80 [size=8]
Region 2: Memory at d0000000 (32-bit, prefetchable) [size=256M]
Region 3: Memory at feb40000 (32-bit, non-prefetchable) [size=256K]
I meant region 0 or region 3. 0 reports 512, 3 reports 256
The second methods rocks, thanks!
With regards to Brian above, I had success with using 261632
Maybe it can go Higher? I don’t know. But, that did indeed work and I had the same as you with the 3rd region and the values going 512 256 256
Annnnd!!! :@ Like with Umar above, I wasted time with copy pasted code not realizing that the quotes were not copy-pasting correcting. rrr! haha but now it seems to work better. 🙂
Hello,
I tried the first step in method and here is the output i get
VGA compatible controller: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (rev 03)
Subsystem: Acer Incorporated [ALI] Device 011f
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 2297
Region 0: Memory at fc000000 (64-bit, non-prefetchable) [size=1M]
Region 2: Memory at d0000000 (64-bit, prefetchable) [size=256M]
Region 4: I/O ports at 1800 [size=8]
Capabilities:
Kernel modules: intelfb
In region = and Region 2 it says 64 bit. Will method 2 work anyway? Please help!
Sorry in the above post i meant in region 0 and region 2 it says 64 bit….
I hade a problem that all my icons and fonts were too large. The second method worked perfectly and the problem is solved. MANY THANKS
Ok, let me clarify, as I didn’t notice this until now. I’m the original author of the first part of this article – Method 2 is by another poster.
i have a strange output of my graphic card.. only 1 “region”.. what’s wrong ???
00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller (rev 03)
Subsystem: Dell Device 01c2
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- SERR- <PERR- INTx-
Latency: 0
Region 0: Memory at eff80000 (32-bit, non-prefetchable) [size=512K]
Capabilities: