on Unity2D and llvmpipe, and the differing approaches of fedora and ubuntu

Ubuntu’s Unity desktop invites comparisons to GNOME 3 for a bunch of reasons, but one important similarity is their reliance on hardware OpenGL support to power their visual animations and effects. In their first releases, both desktops used “fallback” modes to handle systems without OpenGL support, but in Ubuntu 11.10, Unity is available for those systems using a new project called Unity2D.

I think Unity2D is not just a terrible idea, but also another example of the new direction that Ubuntu is taking that makes me wonder if it’ll be my distribution of choice for much longer.

Not so unified

Unity2D removes the reliance on OpenGL by avoiding it entirely: it’s a rewrite of Unity from the ground up, based on the Qt toolkit and using the Metacity window manager instead of Compiz. While it looks and feels much like standard Unity, it’s an entirely separate codebase, and keeping the two in sync as features are added will require a substantial amount of extra work. Perhaps the Ubuntu developers have the resources needed to keep up, but it seems like a very shortsighted approach to me.

GNOME 3’s current fallback desktop is definitely a hack, too — it cobbles together a UI that looks a bit like GNOME Shell using the panel and related components that have been ported from GNOME 2. It has neither the flexibility of GNOME 2 nor the elegance of GNOME 3, so it’s not a particularly compelling experience, but the Fedora developers plan to make the full GNOME Shell experience available for nearly everyone in Fedora 17, using some very cool technology.

Software OpenGL with llvmpipe

OpenGL isn’t inherently limited to systems with hardware acceleration; Xorg actually provides a software implementation of OpenGL by default whenever hardware support is unavailable, but its performance is far low to handle desktop effects. However, a new software renderer, called llvmpipe, aims to change that. By using LLVM, a generic virtual machine that produces optimised x86 or AMD64 code on-the-fly, and utilising multiple CPU cores, llvmpipe performs far better than the standard Xorg renderer.

The gains are impressive: running Quake III Arena at 800×600 on my dual-core laptop, Xorg’s renderer managed 3.9 FPS, while llvmpipe managed a fairly playable 34.9 FPS. While that only makes llvmpipe about as fast as my old Matrox G400, that’s okay — it just has to be fast enough, and for GNOME Shell, and even the odd game, it definitely seems to be. llvmpipe has actually been used as the default software render in Fedora since Fedora 15, but it’s only in Fedora 17 that it supports all of the OpenGL features required to run a compositing window manager.

GNOME Shell on llvmpipe

GNOME Shell running without hardware acceleration on Fedora 17, using llvmpipe

I tested the Fedora 17 development packages (aka “Rawhide”) in a KVM virtual machine, and it worked fairly well; logging in revealed a complete GNOME Shell desktop, and while it was a little choppy, it was definitely usable. I’d definitely expect it to be faster on an actual PC, especially with a mutli-core CPU. The Fedora developers have plans to improve performance, too, by optimising llvmpipe and disabling some minor effects.

So, on the one hand, we have Fedora working on key infrastructure that will improve the Linux desktop experience for all users without hardware OpenGL acceleration, and on the other, we have Ubuntu developers throwing effort away on a developmental dead end. Ubuntu has copped flak before for not contributing to Linux development, but I don’t generally buy in to that argument — “contribution” isn’t something you can measure just by analysing commit logs or counting lines of code. Canonical can pay its developers to do whatever it wants them to do, but increasingly, it seems that the effort they’re expending is pushing Ubuntu in a direction I’m not sure I want to follow.

It’s hard to elaborate on exactly why I feel that way — I think it’s really down to little things, like insisting on forging its own path with Unity, the increasing number of built-in monetised services, and their sleazy dealings with Banshee (be sure to read the comments on that one!). Maybe the result is a great OS for a lot of users, but for me, Ubuntu is slowly drifting away from being the OS I want it to be.

2011 macbook air linux update

As I mentioned previously, I’ve been playing with Ubuntu on my 2011 Macbook Air, and I’m happy to report that it’s now much more usable than when I first installed it. There’s a kernel module hack that fixes the display issues, allowing the Intel driver to run at the panel’s full 1440×900.

Having the Intel driver running instead of the fbdev driver means that OpenGL and visual effects (and Unity, if you’re in to that sort of thing) work, as does brightness adjustment, and I suspect it’s the reason that suspend and resume now work, too. Patching the kernel manually would be a pain, but the (updated) setup script from the Ubuntu forums now takes care of this for you, along with the keyboard and trackpad driver patches.

Ubuntu 11.04 on the Macbook Air, with all the important stuff working

I also had a chance to test the Ubuntu 11.10 beta. I haven’t tested it with the video fix above (though it is supposed to work), but I did notice that the my 5Ghz 802.11n network worked with it, so it seems like the 5Ghz issues I’m having with 11.04 have been fixed.

All of the important stuff is working, then, at least for my needs. There are some minor keyboard niggles — I haven’t been able to adjust the keyboard backlight brightness, and the volume keys are incorrectly mapped — but the biggest issue is with the trackpad. It works, including two-finger scrolling and two- and three-finger taps and clicks, but it doesn’t feel quite right, particularly when scrolling.

It seems like a minor thing, but the trackpad is central to the user experience, and when basics like button presses and scrolling rely to a degree on gesture recognition, it matters a lot that they’re detected reliably and respond appropriately. The multitouch driver is under active development, though, so I have no doubt it’ll improve.

I really enjoying benchmarking this thing, just to see how much power has been crammed in to it. Compiling Ardour 3 from SVN seemed like a good test of overall system performance: it managed it in 14 minutes and 50 seconds, just under two minutes faster than my 3Ghz Core 2 Duo desktop. It’s definitely no slouch!

switching back: the 2011 macbook air

UPDATE: I’ve just posted some updates on the state of Ubuntu on the 2011 Macbook Air.

With my old Dell laptop starting to suffer some physical wear and tear, I figured it was time for an upgrade. I couldn’t find a solid PC laptop that fit my needs, particularly in terms of portability and battery life, so I made a potentially controversial decision — I chose the brand-new 13″ Macbook Air. I won’t be using it for music-making, but after using it for work over the last week, I’m definitely happy with my choice.

I had sworn off Mac laptops for a few reasons: Apple’s power supplies and slot-loading DVD drives have always given me trouble, and my Macbook Pro ran very hot at times. Thankfully, the new power supply design seem less fragile, the Air has no DVD slot to worry about, and while it does howl a bit when working hard, that’s preferable to getting super-hot.

It’s also surprisingly quick — its 1.7Ghz i5 CPU outpaces even my 3Ghz Core 2 Duo desktop, and the SSD makes everything feel snappy. The Intel video isn’t brilliant, but it’s fast enough for most indie games, and even for a bit of Civilization IV or Left 4 Dead 2 on low-quality settings.

The Air’s fixed hardware is definitely a departure from my easily-serviceable old Dell, but it does help it to fit both a powerful system and a lot of battery in to a very light and slender frame. I wouldn’t want it to be my only computer, but it’s great as a portable extension of my desktop and home network. I’m sure I’ll have to give up the whole machine if it ever needs repairs, but with Time Machine backups configured (using my Ubuntu file server), I don’t really have to worry about losing data.

Mac OS X is, well… it’s Mac OS X. It has its advantages: it’s very well tuned to the hardware, making the most of the multi-touch trackpad, resuming from suspend in a second or so, and lasting a good seven hours on battery with a light load. It’s also great to have access to things like Steam. On the other hand, it’s still a bit annoying as a UNIX compared to Ubuntu, the Mac App Store is a shambles, and having to hack the OS just to stop it opening iTunes when I press my keyboard’s “play” key is completely asinine.

However, the reality is that I spend 99% of my working day using Firefox, Chrome, Thunderbird, a text editor, and a bunch of terminals, and Mac OS X meets those needs just fine. (For the record, I’ve been using TextWrangler and iTerm2.)

Ubuntu on the 2011 MBA

Ubuntu running, in a fashion, on the 13" 2011 Macbook Air

The Air can run Linux, too, though it’s not terribly usable yet. The trackpad works in mutli-touch mode after some hacking, but there’s no power management, and the Intel driver doesn’t work with the built-in display, so you’re stuck with unaccelerated 1024×768 video. The wireless works, too, which makes it unique among current Mac laptops, though only in 2.4Ghz mode.

I generally think it’s a bad idea to buy a Mac to run Linux, since the hardware is odd enough to cause these kinds of problems, but it’s always nice to know that I can run it if I need to. There’s a thread on the Ubuntu forums with all the details, and one post in particular that has a script to install patched keyboard and trackpad drivers.

testing ubuntu lucid

Ubuntu 10.04, aka Lucid Lynx, is just a couple of days away, so I’ve been testing it on my laptop to see just how it’s coming along. I rely too much on both my laptop and my desktop to mess with new OSs before they’ve been released (or even just after they’ve been released), but I do keep a little 4GB partition spare on my laptop, so that I can install and test new releases without messing up my primary install.

So far, it’s looking really good. The new visual theme is great to look at, and while it still insists on moving the close/minimise/maximise widgets in window title bars, it at least puts the close button in most accessible place, in the far left. It also has “teh snappy” — Firefox 3.6 on 10.04 snaps tabs around just as quickly as Chrome did on 9.10. I’m not sure what’s going on here, but I suspect it’s an Intel video driver update at play.

In terms of music-making, 10.04 gets two big improvements: JACK is now in the “main” repository, which means that a bunch of apps that didn’t ship with JACK support in earlier versions now can (and do), and LV2 support is much more widespread, with major apps like Ardour supporting LV2 out-of-the-box, and more LV2 plug-ins (such as the Invada pack) available as standard packages. The JACK package now automatically sets itself up to get realtime priority access, removing a manual configuration step that’s often a stumbling block for users new to Linux audio.