Blog entries for January, 2008
SUCCESS! COMPOSITING ON A SECOND X SERVER
If you want to play with compositing on Fedora 8 using the Intel
drivers, here's how I got it working.
- For testing, you can run a second X server on the
hardware. However, you first need to disable DRI on the main X server
(and not use a compositing WM on the main X server). This is done by
adding Option "NoDRI" to xorg.conf. If you don't have a
xorg.conf (I didn't), run system-config-display and let it write out a
minimal one. Add the NoDRI option to the Device section. Next, copy
xorg.conf to something like xorg-dri.conf, and re-enable DRI in the
copied file. Then you can run a second X server as something like
"X -config xorg-dri.conf -audit 0 -br -ac :8 -nolisten tcp
vt8". Careful: if your main X server has DRI running, you won't
get DRI on the new X server even though it's in the config file. So be
sure the main server lacks DRI (use "glxinfo" to check).
If you run Compiz on a server without DRI, the error is
"No GLXFBConfig for default depth, this isn't going to work."
You must have direct rendering enabled (check glxinfo).
Once you enable DRI, however, Compiz will say the
GLX_EXT_texture_from_pixmap extension is missing. To fix
this, you have to set LIBGL_ALWAYS_INDIRECT=1 in the environment.
The desktop-effects control panel that comes with Fedora sets
this env variable when it runs compiz. Yes, you should have direct
rendering enabled, and then you have to set LIBGL_ALWAYS_INDIRECT=1.
NESTED X SERVERS HATE ME
Goal: run Compiz in a nested X server. Or really, any X server that is
not the one I'm using for real work.
List O' Failures:
- "Screw it, just run the regular X server on another virtual
console." DRI can only be used on one console at a time. Lose.
"Xephyr supports GLX in latest git." Latest Xephyr totally busted on 64-bit
platforms. After debugging and applying lots of 64-bit fixes, still
does not report GL-capable visual to glxinfo or glxgears, though it
reports GLX extension. Lose.
"Build Xgl from git, since it isn't in Fedora." Xgl subdir on main
branch of xorg/xserver is just a trap for suckers; does not build and
probably never did. Discovered there is a separate Xgl
branch. Requires --disable-xcsecurity or it won't build. Does not work
with Fedora 8 system DRI headers or Mesa-from-git DRI headers. Docs on
freedesktop.org wiki still talk about CVS, not helpful. Lose.
Anyway, about 12 hours down the tubes so far, mostly building
'xserver' over and over with a variety of config options, installed
dependencies, patches, and branches, trying to get the magic combo.
XNEST, XEPHYR, XGL, XDMX...
Does anyone know a way to hack on a GL-based compositing manager such
as Compiz in a nested X server? I didn't even try Xnest assuming
there's no way it works; Xephyr has GLX and Composite but Compiz
reports that the root window has the wrong visual; Xgl appears to be
dead (?) and isn't in the Fedora yum repo; and Xdmx has GLX but not
Composite or any of the other newer extensions.
Google reveals no suggestions (other than Xgl, which apparently worked
at some point in the past). If I figure it out I'll post the answer.
After almost 9 years, today was my last day at Red Hat. I'll miss it,
and all the great people there.
It's not time yet to say what I'm working on now, and may not be time
for a while. In the meantime, I'll be around in all the usual places
you might expect to find me.