GLX in Xephyr --or-- is there some other way to catch a desktop in a texture?

Ashi Krishnan black.iris.dancer at gmail.com
Mon Dec 8 12:55:43 PST 2008


I was poking around the 7.4 release notes, and saw, hey, GLX
passthrough for Xephyr! Great!

I gave the version installed with Ubuntu (Intrepid) a whirl, and while
OpenGL applications work*, they aren't accelerated (indirectly or no)
which is what I would expect "passthrough" to mean.

So, questions:

1. Am I interpreting "GLX passthrough" wrong? Is the functionality I'm
hoping for even implemented?
2. If so, does it look like Ubuntu is disabling this feature in their build?
3. Or am I failing to enable it on the command line? I've tried most
variations on +extension GLX, nodri, and so forth, but I could have
missed something.
4. Is there another way to do what I'm trying to do?

What I'm trying to do: I want to capture all the windows of some
arbitrary X application as GL textures, then render them in some way,
without any of this output showing up on screen (except where I
finally render things, obviously).

To get the window contents, I was going to redirect window contents to
a texture with Composite / texture_from_pixmap. This is fine if (1)
the app creates only one window, and (2) is quite cooperative with
respect to where it draws that window -- like, say, the xscreensaver
hacks. If I want to capture Firefox, on the other hand, with dialogs
and menus popping up all over the place, it seems like the thing to do
to do is run another X server, run a window manager on that server,
launch whatever apps I need, then capture the whole screen.

Another way of doing this, of course, is to just launch another X
server. But I don't know if texture_from_pixmap works across servers,
and more saliently, I can't get an X server to launch without
switching me to its VT (-novtswitch having no noticeable effect).

* - Actually, some of the xscreensaver hacks refuse to draw on the
root window, saying it doesn't support GLX visuals. I'm not sure
what's up with that, but I'll also happily not care if everything else
works.

Ideas?

~ violet



More information about the xorg mailing list