Thursday, February 18, 2010

Kernel Mode Setting with the Intel Driver

My HP 1120NR  uses the Mobile 945GME Express Integrated Graphics Controller and my Acer Aspire 5315 uses the‎ Mobile GM965/GL960 Integrated Graphics Controller, both of which use the  0915 video driver. This means that I can use kernel modesetting.

This is how:
  1. In /boot/grub/menu.lst, delete any vga= entries.
  2. Add i915.modeset=1
  3. Reboot.
  4. Check to see if modesetting is enabled by looking for a value of modeset : 1 when you run the command get_module i915
I also added the file /etc/modprobe.d/i915.conf that contains the following:

options i915 gem_enable=1
options i915 modeset=1
options i915 fbpercrt=0
options i915 fastboot=1

The first line enables the GEM option. From here, "To [dis-]able GEM, just replace [1 with 0]. Users should try to disable GEM "when slow 3D performance is noticed and when the Xorg.log makes reference to problems enabling tiling due to it being rejected by the kernel"." Mandriva disables GEM automatically for i8xx hardware; it's disabled across-the-board in Ubuntu Jaunty's Intel driver; you might want to re-compile to enable it if you have i9xx hardware.

This is what GEM is: the Graphics Execution Manager which manages graphics memory (courtesy of Keith Packard).

The second line is redundant for the GRUB boot parameter and is an alternate way to implement modesetting. I find it interesting that files in /etc/modprobe.d/ can be used to set module options. Did not know that before.

The third line sets the option for a power saving option related to an internal clock; the default is zero (or off) because of broken BIOSes. You can turn it on and see if you get a flicker. Additional options may have been enabled in your driver; use get_module i915 to see what is there and what the current vales are.

The fourth line is explained here. It is experimental and allows faster initialization by skipping unnecessary mode sets.

The many settings found in xorg.conf file have been deprecated although some will be restored when adapted for kernel mode setting.

You can look at all the options available along with some explanation by using

#  modinfo i915 | grep parm

There's a nice overview of the driver in the Arch Wiki.

Using glxgears as a benchmark?
Here's a reference to two posts that establish that glxgears can't be used as a 3D benchmark. Quick fix: use teapot instead.

UPDATE: The Intel driver has changed so much that these options are obsolete and the driver configures itself automatically. 


Kernel mode setting


No comments: