Wednesday, December 10, 2008

Two X servers and a microphone

Oh, ok, so getting running under Wayland was easier than expected. Or I guess, it was as easy as expected, which is usually never the case.

What's running here are two servers, side by side under Wayland. It's not Xnest or Xephyr, it's the full X server with DRI2, GLX, Xv and UXA acceleration. The only difference is that the server passes its front buffer handle to Wayland instead of passing it to kernel modesetting and it receives input events from Wayland instead of evdev. And Whenever the Intel DDX driver flushes its batchbuffer it now also sends a damage event to Wayland.

There's some weird transparency going on, and the reason is that the X servers window pixmap doesn't have a well-defined alpha channel. Which doesn't matter when the hardware is scanning it out to a display, but in this setup it causes some unintended transparency.

The Wayland server transforms the input events to the surface coordinate system of the client surfaces, which means that the X servers are fully functional, and you can click the icons and move the tiny windows around. It's all very cute. Keyboard input isn't working yet, but it shouldn't be too hard, since I think can get away with just passing the scan codes to the X server.

Monday, December 8, 2008

Wayland gets a terminal

Still hacking on the Wayland project. I've spent some time getting the repaint loop and repaint notifications right, which is surprisingly tricky if you want to sync to vblank and make sure every client gets a chance to paint every frame. But I think I got it right and it looks beautiful when everything is synced to vblank and animating every frame. I've started looking into getting a fullscreen X server running under Wayland, which should be a matter of just passing the front buffer handle to Wayland instead of setting the mode. So far though, it's only crashing or locking up, so I wrote a terminal for Wayland as a small diversion

This is not a long term solution though, it has very limited ANSI support and I don't expect to extend it much (maybe enough to run emacs and irssi). The plan is to add a Wayland backend to GTK+, which should be a lot easier when Alex's client-side window work lands, and then just use VTE. For now, this goes a long way and the resizing is smooooth...

Thursday, December 4, 2008

Git is better than X

I found this link over on the blog:

Of course, git is awesome and doesn't need selling, but if it did, that page does a pretty good job at it.