Tuesday 5 February 2008

Xglamo: the X server of the neo GTA02 device

The GTA02 hardware of the OpenMoko project sports amongst other things the Glamo3362 GPU from smedia.

I have been working on an Kdrive based X server, dedicated to that glamo chip: Xglamo.

I basically took over the job done by Chia-I Wu, aka Olv (man, get yourself a blog ;-) ) in putting together an X server for that chip.

I did hack on bringing support of hardware acceleration in areas like blitting, solid fills, RandR support and XVideo so far.

For blitting and solid fills, we did start using the Kaa acceleration architecture. It seems to be pretty robust and did speed up things like scrolling a fair bit.

For RandR acceleration I hacked the kernel framebuffer driver to make it support hardware assisted rotation and fleshed out its resolution setting code. With that setup, I just made the Xglamo RandR extension implementation use that shiny new kernel framebuffer rotation and resolution setting capabilities.

The XVideo extension driver exposes a textured video port that supports clipping and scaling for planar YUV 4:2:0 frames. I am still working on supporting parameters settings like brightness, saturation and so on. For now, I can play videos using mplayer on the device, or even launching totem on my desktop and making it display its output on Xglamo server running on the device. The basics are in the box.

All that code is already integrated in regular OpenMoko builds that you either compile yourself or grab from the daily builds directories.

There should be more to come on this topic in the coming days and weeks. In any case, I try to sent regular updates to the openmoko-devel list.

So stay tuned :-)