← Back to team overview

elementary-dev-community team mailing list archive

Re: 3D & WMs in Luna

 

I know very little about WMs, but it seems Muffin does support window
snapping, it just requires to press Shift, but I think changing something
like this shouldn't be a problem. To have more info:
https://github.com/linuxmint/muffin/blob/master/README-Mutter

Plus, if we manage to get a better look and feel, is easier to implement
than Compiz 0.8 and we get window snapping I'd surely go with Muffin.

Regards,
Andrea Basso

On Tue, 15 May 2012 15:50:23 +0200, Sergey "Shnatsel" Davidoff <sergey@xxxxxxxxxxxxxxxx> wrote:

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<https://blueprints.launchpad.net/ubuntu/+spec/desktop-q-gnome-plans-review>,
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:

   1. Compiz 0.9 - miserable in terms of performance and has downright
   glitchy rendering for popovers, including Slingshot.
2. 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.
   3. 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.
   4. Muffin - somewhat configurable variation of Mutter with support for
   workspaces overview. Could use more investigation.
5. 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.


Follow ups

References