25 Sep 2007 (updated 1 Oct 2007 at 09:53 UTC)
»
OpenGL and XVideo acceleration in Xephyr
For those who don't know, Xephyr is an X
server that "displays" stuff
into a window of the host X server currently
running on your machine.
You can simply launch Xephyr on your desktop and make your
favorite applications
use it as their display.
So Xephyr normally does its rendering in software and
then sends the image
resulting from that rendering to the window of the host X
server. That means it does not take
advantage of the possible hardware assisted acceleration
that can be provided by your
graphics card. One of the implications of this is that
Xephyr did not support XVideo or DRI based OpenGL acceleration.
At least until recently :-)
One my recent projects at OpenedHand was to plug
that hole and make Xephyr support
XVideo and OpenGL acceleration.
The principle was basically to make Xephyr act as an
XVideo/GLX client of the host X
server, on behalf of the actual client application.
That way, Xephyr leverages on the acceleration capabilities
provided by
the host server (if any), without being tied to anything
specific to the
underlying graphic card. It is a way to use the host X as a
portable
acceleration layer, in a sense.
In short, if your host X server has XVideo and GLX
acceleration, Xephyr will use
that.
For GLX acceleration, Xephyr uses the Direct Rendering
Infrastructure to talk to
the host X. That implies that the system will work with free
software DRI
drivers only.
Now, video time.
DISCLAIMER: YOU HAVE TO WATCH THESE VIDEOS IN
FULLSCREEN.
Otherwise they are of very very poor quality.
glxgears in Xephyr without acceleration
;
glxgears in Xephyr with acceleration
getting the code:
git clone
http://people.freedesktop.org/~dodji/xserver
dodji-xserver.git
compiling:
You new to checkout out mesa:
git clone
git://anongit.freedesktop.org/git/mesa/mesa mesa.git
cd dodji-xserver.git
./autogen.sh --prefix=/your/prefix --enable-debug
--enable-xephyr --enable-kdrive --disable-xorg --disable-dmx
--disable-xorgcfg --disable-xcalibrate --disable-xsdl
--enable-dri --enable-glx
--with-mesa-source=/your/mesa/chekout --disable-xprint
--enable-builtin-fonts --disable-tslib
make
launching:
hw/kdrive/ephyr/Xephyr :1 -ac
Syndicated 2007-09-25 11:26:50 from Dodji on the wire