Multihead support and preparing for 0.8.0
halfline at gmail.com
Tue Sep 29 11:19:34 PDT 2009
Yesterday after releasing 0.7.2 I merged the "seat-rework" branch to master.
This branch restructures the code quite a bit, in order to allow for
multi-head renderering. I ported all the splash plugins over so they
would rerender themselves on each head using that head's native
We could conceivably have one head be the splash and another be
details, or some other configuration. It's a plugin specific
In order to get the monitor layout I needed to move from using /dev/fb
to libdrm for setting up the scan out buffers. I think that's the
right long term move, but it did add a bit of complexity to the code.
Even though we use libdrm now, it's still all done in software. We
don't do any gpu acceleration; just software blits from a shadow frame
buffer to the scanout buffer.
There's a new class of plugins now: "renderer" plugins. Right now
there are two: frame-buffer and drm. frame-buffer is basically the
old way moved to a plugin, and drm is a new way that gives us the
multihead monitor layout information.
In addition, I think it might make sense to do an X11 renderer plugin
to aid in debugging and splash plugin writing. The idea is plymouth
would run in an X window, so developers wouldn't have to run plymouth
from a VT just to test it. It could also potentially lay the ground
work for a theme picker ala gnome-screensaver-preferences (not sure if
that's a good idea or not). The X11 renderer plugin isn't written
yet, but Charlie's looking into it.
The next plymouth release will be 0.8.0. I've already pre-bumped in
configure, but it could be a while until the actual release is tagged.
I've built a snapshot into rawhide, already, though.
Just a heads up,
More information about the plymouth