← Back to team overview

elementary-dev-community team mailing list archive

Re: 3D & WMs in Luna

 

Shnatsel, from my testing I have found next to no problem with Compiz 0.9, so I'm not against it for Luna. On the other hand, Mutter/Muffin seems to be exactly what we're looking for. How hard is it to implement? Do you think it's doable for Luna?

Dan, I agree on temporarily dropping support for unaccelerated harware.
I'm quite against waiting for 12.10, though. The main reason is the hype is already decreasing because people keeps listening to great news/apps that will be in Luna but Luna is not coming. And when you wait too much, people just stop caring and won't try eOS. Plus, if we keep putting it off, we risk to make it a never-released project, I mean, how many times have we already put it off? Last, 12.04 is a LTS, it's more stable and is a better distro to base eOS on than 12.10.

Regards,
Andrea Basso

On Tue, 15 May 2012 17:53:43 +0200, Daniel Foré <daniel@xxxxxxxxxxxxxxxx> wrote:

Okay so here's my thought:

Obviously drop 2D support. That is a hell of a relief to be able to do.

We don't really have anyone to do the work it's going to take to get Mutter/Muffin up to speed. The animations are just lame, I wouldn't want to ship it.

However Compiz is a dead-end in the long term as well. We're going to have to move away.

So what path from Luna to Luna +1 is going to 1. Be easiest for us to code and 2. Piss of our users the least.

While we're thinking about that, we do have a bit of an ace in the hole. I know it would suck a lot, but we could consider delaying Luna until after 12.10 in order to inherit LLVM pipe and also to have the time to get Mutter/Muffin up to speed.

Best Regards,
Daniel Foré

El may 15, 2012, a las 6:50 a.m., "Sergey \"Shnatsel\" Davidoff" <sergey@xxxxxxxxxxxxxxxx> escribió:

Hello guys,

I've got an inconvenient truth to report. It seems we cannot provide a decent unaccelerated fallback for Luna. Here's why.

We have more and more things based on Clutter. Ubuntu's current softpipe fallback is miserable in terms of performance and downright buggy to the state of unusability. On the other hand, Ubuntu 12.10 is going to have llvmpipe and they're going to actually use it for Clutter, so no more untested & unused softpipe.

So we have to either delay integrating the greeter till 12.10, or we have to drop support for systems without hardware acceleration from Luna.

Right now maintaining an unaccelerated fallback means using a different window manager and using a different X compositor. This means we have two completely different codepaths that try and fail to mimic each other. That ranges from look and feel inconsistencies in workspaces to focus behavior inconsistency and, worst of all, hackish workarounds in Slingshot and to some extent Wingpanel to support 2 different WMs. Finally, it limits the amount of features we can implement to the greatest common denominator of features of the two WMs, or rather, the features they happen to implement consistently.

The only way to get rid of that situation is to use only one WM and/or only one compositor.

I've poked around with various WM and compositor combinations, and the only fallback WMs+compositors we can use are Metacity and e17. Those are the only software compositors I'm aware of that do not suffer from tearing - all Xrender-based compositors do because Xrender is not vsyncable by design and cairo-compmgr also does in my tests, though I have not interrogated cairo devs about vsync.

So even if we drop the greeter, for unaccelerated fallback we can either use Metacity with its bugs in unfocused theming, inconsistent focus behavior, slingshot hacks and miserable workspaces overview imitation, or we can use e17 for which we don't even have a theme port and which uses custom toolkits which are not consistent with elementary theme. Neither option is satisfactory IMO.

So let's drop systems not capable of 3D acceleration for Luna and inherit fallback support via llvmpipe from upstream in 12.10. We can look into releasing a 2D remix of Luna after the initial release.

Given hardware acceleration, we have the following WM options for Luna:
Compiz 0.9 - miserable in terms of performance and has downright glitchy rendering for popovers, including Slingshot. Compiz 0.8 - won't have unfocused theming and aerosnap, but given the fact that we still have GTK2 apps in the OS, e.g. update manager, I'd rather not push unfocused theming just yet. Especially since it's not very useful in its current form anyway - seeing windows without a single sensitive control just freaks me out, especially if it's a dialog. Mutter - has really cheesy animations, which we can't fix unless we write a plugin to it. No aero snap without a plugin either. No workspaces overview. elementary theme has some kind of antialiasing under it, but it doesn't feel right. Muffin - somewhat configurable variation of Mutter with support for workspaces overview. Could use more investigation. E17 - it has decent compositing, it even works great in pure software via evas without any llvmpipes. Doesn't have expo or workpaces overview, but at least provides smooth transitions between workspaces, of which Mutter isn't capable OOTB. Has its own custom toolkit, which has very snappy animations even in software rendering and can use opengl too, but has nothing to do with OpenGL. (No "let's switch toolkit" discussions please!) From the list above the only viable options are Compiz 0.8 and Muffin, given that we're not going to hack together a mutter plugin for Luna, though I believe we'll have to do that eventually. Muffin may provide a more modern look and feel but we have less control over it than over Compiz. My attempts to integrate Compiz 0.8 have hit mystery bugs, so I'm leaning towards investigating Muffin now.
--
Sergey "Shnatsel" Davidoff
OS integrator @ elementary

--
Mailing list: https://launchpad.net/~elementary-dev-community
Post to     : elementary-dev-community@xxxxxxxxxxxxxxxxxxx
Unsubscribe : https://launchpad.net/~elementary-dev-community
More help   : https://help.launchpad.net/ListHelp


References