On making a proper kernel for gnome-shell
Jason D. Clinton
me at jasonclinton.com
Fri Mar 11 18:15:50 UTC 2011
On Fri, Mar 11, 2011 at 10:34, Jonathan Corbet <corbet-ft at lwn.net> wrote:
> failed to create drawable
> Window manager error: Unable to initialize Clutter.
> As far as I can tell, my kernel configuration is the same as Fedora's for
> the relevant options - i915, KMS by default, etc. But the Fedora kernel
> works, mine does not.
> Other interesting observations:
> - The Xorg.0.log output appears to be identical in both cases.
> - The glxgears benchmark (known to be the definitive measure of 3D
> performance :) runs ten times faster on my custom kernel than on the
> Fedora kernel. On my kernel, I don't get the "using vertical sync"
> So I'm mystified. Any ideas? Might there be some magic in the Fedora
> initrd that I'm missing (I've never used initrd on my systems)?
Hrm. From a distance, it's hard to make a diagnosis but I'll try to
give you a brain dump of what I know.
Basically, the above output seems to indicate that the driver is
reporting that it knows how to report the monitor VSync but is failing
to actually deliver the signals to OpenGL clients. The driver is
supposed to report when it doesn't know about VSync and then Clutter
automatically goes in to fallback mode. This is probably a regression
in the vanilla sources i915 drive and my guess would be that one of
the handful of patches on the Fedora kernel is fixing it:
Someone on #intel-gfx could probably give you the status of whatever
patch you find as the culprit in a matter of seconds. (There's also
the fdo bugzilla.)
Clutter is trying to time its paint operations to VSync to save power
and avoid drawing artifacts.
You really should try to figure out what's wrong with your kernel for
the best experience but--baring that--there is a work-around: you can
export CLUTTER_VBLANK=none before running "jhbuild run gnome-shell
--replace" to force Clutter to use its own clock. However, you will
get render tearing when moving windows when running in this mode.
As for the initramfs, I've just switched from Debian to Fedora so I
can't quickly tell you what the role of dracut is in setting up the
KMS framebuffer, if any. In Debian, the initramfs does probe the
framebuffer modules. However, my guess would be that this is not an
issue at all since you see the same Xorg.0.log output.
More information about the test