elementary-dev-community team mailing list archive
-
elementary-dev-community team
-
Mailing list archive
-
Message #00563
3D & WMs in Luna
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.
--
Sergey "Shnatsel" Davidoff
OS integrator @ elementary
Follow ups