i915_tex driver locks X when starting compiz

Daniel Kasak dkasak at nusconsulting.com.au
Tue Aug 14 19:08:25 PDT 2007


On Tue, 2007-08-14 at 09:43 +0200, Michel Dänzer wrote:

> On Tue, 2007-08-14 at 11:45 +1000, Daniel Kasak wrote:
> > 
> > I've just finished some testing with today's git of mesa, xserver,
> > xf86-video-intel, libdrm, libpixman, libX11, xf86-input-keyboard,
> > xf86-input-mouse, and maybe a few others.
> > 
> > I tested both the i915_tex driver and the legacy driver, with both XAA
> > and EXA. The legacy driver works as before, though the fastest method is
> > still with XAA and XAANoOffscreenPixmaps set - I'm not sure of the
> > zero-copy-tfp stuff is in the older driver ... is it?
> 
> Not yet, feel free to port it. :)

Trust me ... I would if I could. I've often thought that if I learned C,
I'd be working on E17 and video card drivers. But this is probably
waaaaay to optimistic of me. At the moment I have about 8 years of VB, 5
years of PHP, and 3 years of Perl experience. I've had a couple of
aborted attempts at one of the 'teach yourself C in 21 days' books -
mainly due to time constraints and other programming projects ( eg
http://entropy.homelinux.org/axis ). Is it feasible that I'd be able to
quickly ( a couple of hundred hours ) learn enough C to do this porting
job? Keep in mind I'd be basically starting from scratch again.

> What about the X server stderr output?

Nothing that I don't recognise when EXA is in use. When I use XAA, I
get:

X: symbol lookup error: /usr/lib/xorg/modules/drivers//i810_drv.so:
undefined symbol: exaMoveInPixmap

The i810_drv.so is a sym-link to intel_drv.so

>  Did you double-check that
> everything (at least xserver, xf86-video-intel and mesa) was built and
> running against libdrm from the same drm snapshot as the i915 kernel
> module?

I'm not *certain* of the order that I built everything in. It's possible
that I did libdrm after xserver. I'll rebuild everything now to be sure.
I'll report back if I have better luck.

> Is the xserver snapshot really up to date?

Yes.

>  The mieqEnequeue messages
> should have been fixed a while ago, though maybe they can still occur
> with a lockup.
> 
> > Each time I tested, the screen went black and never returned, but the 
> > cursor stayed visible and followed mouse movements. I couldn't switch 
> > to another VT, but I could ssh in and reboot.
> 
> Hmm, sounds like a GPU lockup, though the X driver should detect that
> and abort with some debugging output...

I've locked it up probably 30 times now over the past day or so, and
each time I could ssh in and reboot it, but it never aborted with
debugging info.

> It could be related to the DRM memory manager area being only 2048 KB;
> if you can, try increasing the AGP aperture size in the BIOS setup.
> Otherwise, try Option "AperTexSize" with values between the default
> 32768 and 2048.

Right. This gave me another couple of dozen test cases, that brought out
some strange things.

To start with, my AGP aperture size in the BIOS was at its largest:
256MB. But no matter what I set it to ( 256, 128, 64 ), I always get the
same kernel message on bootup:

agpgart: Detected an Intel 845G Chipset.
agpgart: Detected 892K stolen memory.
agpgart: AGP aperture is 128M @ 0xe8000000

Also, I've told the BIOS to steal 8MB of system memory ( which is
unfortunately the maximum ). I didn't try lowering it.

Is there a problem with agpgart always detecting a 128MB aperture?

I tried many combinations of:

Apeture: 256, 128, 64
AperTexSize: 32768, 16384, 8192, 4092, 2048

In particular, I tested all AperTexSize settings for a 128MB Aperture
( since agpgart keeps insisting I've got this size ).

I did get slightly different behaviour with different combinations.
Sometimes, the mouse pointer would also freeze / disappear. Sometimes
the gnome background would appear. But each time I got a lockup anyway.

It seemed to get further with XAA than with EXA. With XAA, compiz says:

Backend     : ini
Integration : true
Profile     : default
Adding plugin animation (animation)
Adding plugin annotate (annotate)
Adding plugin blur (blur)
Adding plugin clone (clone)
Adding core settings (General Options)
Adding plugin cube (cube)
Adding plugin dbus (dbus)
Adding plugin decoration (decoration)
Adding plugin expo (expo)
Adding plugin fade (fade)
Adding plugin fs (fs)
Adding plugin glib (glib)
Adding plugin imgjpeg (imgjpeg)
Adding plugin inotify (inotify)
Adding plugin minimize (minimize)
Adding plugin move (move)
Adding plugin neg (neg)
Adding plugin opacify (opacify)
Adding plugin place (place)
Adding plugin plane (plane)
Adding plugin png (png)
Adding plugin put (put)
Adding plugin regex (regex)
Adding plugin resize (resize)
Adding plugin resizeinfo (resizeinfo)
Adding plugin ring (ring)
Adding plugin rotate (rotate)
Adding plugin scale (scale)
Adding plugin scaleaddon (scaleaddon)
Adding plugin screenshot (screenshot)
Adding plugin snap (snap)
Adding plugin svg (svg)
Adding plugin switcher (switcher)
Adding plugin text (text)
Adding plugin thumbnail (thumbnail)
Adding plugin video (video)
Adding plugin vpswitch (vpswitch)
Adding plugin wall (wall)
Adding plugin water (water)
Adding plugin winrules (winrules)
Adding plugin wobbly (wobbly)
Adding plugin zoom (zoom)
Initializing core options...done
Initializing decoration options...done
Initializing imgjpeg options...done
Initializing move options...done
Initializing neg options...done
Initializing place options...done
Initializing resize options...done
Initializing resizeinfo options...done
Initializing ring options...done
Initializing thumbnail options...done
Initializing video options...done
Initializing wobbly options...done
Initializing zoom options...done
Initializing animation options...done
Initializing fade options...done
Initializing cube options...done
Initializing expo options...done
Initializing rotate options...done
Initializing scale options...done
Initializing scaleaddon options...done
Initializing switcher options...done

 ... but with EXA, I get no output at all.

Lastly, with EXA enabled ( and no compiz ), I'm still getting corruption
of the gnome background when things move over it. I was told this was
something to do with pixman changes. I used to get it with my r300 as
well, but this is fixed now. With XAA I don't get this corruption.

--
Daniel Kasak
IT Developer
NUS Consulting Group
Level 5, 77 Pacific Highway
North Sydney, NSW, Australia 2060
T: (+61) 2 9922-7676 / F: (+61) 2 9922 7989
email: dkasak at nusconsulting.com.au
website: http://www.nusconsulting.com.au




More information about the xorg mailing list