On Thu, 2 Apr 2009 22:19:17 +0200
Pongrácz István <pongracz.ist...@gmail.com> wrote:

> Could you explain this GEM technology a little bit more?
> I installed gentoo-sources-2.6.29 + lates (2.6.3) intel driver, but I get
> half performance than with 2.5.x intel driver.


AFAIK you need a fairly recent xorg-server and mesa to use GEM.
That's not a problem for me, since I use ebuilds from x11 overlay, but
since 2.6.29 kernel hit the main tree already, I suppose all the
xorg-related stuff should be sufficiently new, but probably still
marked as ~arch.

I have the following userspace:
x11-base/xorg-server-1.6.0
media-libs/mesa-9999
x11-libs/libdrm-9999
x11-drivers/xf86-video-intel-2.6.99.902

As you can see mesa and libdrm are live ebuilds, but from my experience
they are fairly stable. Still prehaps it's best to stick to the main
tree if it'll suffice.


Then there are some settings.

First of all, it's "i915 DRM" kernel setting. I've tried to make it
work with kernel modesetting in 29, but sometimes it gives me a black
screen on X start, so I don't use it.
Check that dri use flag is enabled, but that should be fairly obvious.
I have nptl flag enabled too, but dunno if it's related.

Then, there's xorg.conf. Mine looks like this (only relevant sections):


  Section "Module"
    Load  "glx"
    Load  "extmod"
    Load  "record"
    Load  "dbe"
    Load  "dri"
    Load  "xtrap"
    Load  "freetype"
  EndSection


  Section "ServerFlags"
    Option "AIGLX" "True"
  EndSection

  Section "Extensions"
    Option "Composite" "Enable"
    Option "RENDER" "Enable"
  EndSection

  Section "DRI"
    Mode 0666
  EndSection


  Section "Device"
    Identifier  "IGP"
    Driver      "intel"
    VendorName  "Intel Corporation"
    BoardName   "Mobile GM965/GL960 Integrated Graphics Controller"
    BusID       "PCI:0:2:0"
    Option      "DRI" "true
    Option      "AccelMethod" "EXA" # UXA
  EndSection


I'd suggest trying at least AIGLX flag and DRI / AccelMethod in device
(I've seen suggestions to choose UXA method for it's quality at the
cost of reduced performance, but never tried myself).

With that I get about 60 FPS, but that seems to be expected behavior -
you also need to set up dri for more.


I've used x11-misc/driconf for setting up .drirc (which I've also
copied to /etc/drirc, but that's probably unnecessary for single-user
system).

In my case, it looks like this:

  <driconf>
      <device screen="0" driver="i915">
          <application name="Default">
              <option name="force_s3tc_enable" value="false" />
              <option name="no_rast" value="false" />
              <option name="fthrottle_mode" value="2" />
              <option name="bo_reuse" value="1" />
              <option name="vblank_mode" value="0" />
              <option name="allow_large_textures" value="2" />
          </application>
      </device>
      <device screen="0" driver="i965">
          <application name="Default">
              <option name="force_s3tc_enable" value="false" />
              <option name="no_rast" value="false" />
              <option name="fthrottle_mode" value="2" />
              <option name="always_flush_cache" value="false" />
              <option name="always_flush_batch" value="false" />
              <option name="bo_reuse" value="1" />
              <option name="vblank_mode" value="0" />
              <option name="allow_large_textures" value="2" />
          </application>
      </device>
  </driconf>


And that's probably all I did to set it up, but I might miss something
out, because of unreliable memory.
The setup works for both 28 and 29 kernels, giving fairly good
performance for both native and wine OpenGL games. Before that,
'software' rendering options yielded better results.

Hope that helps.
I didn't really went into low-level specifics of "how it all works"
myself, but planning to examine the topic a bit more closely, someday.

-- 
Mike Kazantsev // fraggod.net

Attachment: signature.asc
Description: PGP signature

Reply via email to