The state of KWin
Martin Gräßlin
kde at martin-graesslin.com
Sun Dec 26 14:19:37 CET 2010
Hello,
let me break the Christmas silence by writing a long post about the current
state of KWin and where we are heading towards in 2011. As this also is about
Plasma I sent it to both lists. I have been thinking a lot about the last year
and the state of kwin over the holidays and here is the summary. Sorry that it
is that long.
*Plasma and KWin*
I consider Plasma and KWin as the integrated product of the KDE workspaces.
Both products depend on each other and do not make much sense without the
other. This is also reflected when looking at our developer base: we have
almost a 100 percent match. We currently see great improvements on the syncing
of our working procedures. Using reviewboard, having common processes for git
and so on. I hope with the switch to kdelibs coding style (scheduled for
directly after import of KWin-GLES) and removing bug mails for KWin
mailinglist to have improved the situation for Plasma devs. If there is
anything from a Plasma perspective to improve it even more, please let me
know, I am open to all suggestions.
*Driver situation*
We had a very bumpy ride with the 4.5 release. We introduced new (optional)
hardware requirements which just failed with free drivers. We noticed too late
that we had a problem and shipped with the broken setup. The last minute
adjustments like the blacklist did not solve the issue at all.
4.5 showed that we have no way of testing KWin on a various set of hardware. I
was able to test KWin on just one NVIDIA system at the time of 4.5. Nowadays
it increased to three and soon will be four, but it's nothing. There are
houndreds of combinations and we cannot even try to test them all. We need to
raise the awareness that at least all KDE developers who run trunk have to
report new introduced problems ASAP. I just cannot understand that problems
like slowness of Present Windows with NVIDIA is reported by users in the beta
phase several month after the code hit trunk!
Nowadays it looks better. The reports on broken drivers decrease and we have
platform detection code and can now disable features for cards we know that
they don't provide a feature even if the driver tells us it does. We do not
make use of it, but I hope to see it used everywhere in 4.7 where we check for
available features. For 4.7 we will see a new rendering path which has been
developed using Gallium3D, so here we will also see more hardening and I want
to submit our complete rendering engine as piglit tests.
*Elegance*
In the second half of the year the development focused on what Aaron would
call Elegance. We were able to increase the performance significantly in many
different areas. The new effects like dashboard, screenshot or startup
feedback clearly fall into this category. I want to see this continued in the
next year. KWin is a great window manager, let's smooth the rough edges and
get the desktop use the advantages of OpenGL compositing.
*GSoC*
During the last two years we had two GSoC and one SoK projects. While they add
great functionality they are a complete failure from a maintainance point of
view. None of the developers stayed, the code is partly buggy and even crashy
and in case of the JavaScript bindings we do not even have any documentation
on techbase how to write scripts.
For the next GSoC I will not accept projects adding new features and I would
prefer having students known to the KDE community (I am thinking about some
members of the Plasma team here). We need projects which increase our code
quality and not adding more problems.
*Manpower*
Manpower is in my opinion the biggest problem of KWin. We are just three
developers + Chani and Ivan working on activity related code. I would like to
get more Plasma developers working on KWin. It should be a natural thing to
touch KWin code and to add new features in KWin if it makes sense. Here I
would like to know from the developers sometimes working on KWin what needs to
be improved. Where are things missing to grab the code more easily.
I am currently trying to recruit a new developer and I would like to see KWin
having a fulltime developer - we have enough to work on. I at least plan to
look into that topic in 2011.
*GLES*
The port to OpenGL ES is nearing completion. I will finish the port of cube
(almost done) and leave out the remaining unported effects at the moment
(mostly shader based effects like blur which need some more thoughts). I will
switch back to desktop GL to ensure that everything is still working and then
call for testers (depending how much spare time I will find next week it will
be the next or the second next weekend).
GLES gives us a much more modern rendering backend which I expect to perform
much better and gives us the chance to add more elegance to the desktop ;-)
The improvements through GLES will also benefit desktop users using a modern
enough driver. Unfortunately the decision whether ES or desktop GL is used, is
a compile time decision and at least NVIDIA does not ship ES drivers. So we
cannot depend on ES, nevertheless I will try to find a runtime detection
solution.
*Modularization*
If we want to make KWin a real alternative on mobile devices we need to become
more modular. This could be a nice GSoC project. Modularization is probably
also a requirement for Wayland.
*Wayland*
The Linux desktop is standing in front of the biggest transition for years.
Whether we like it or not, I expect that Wayland will come. Personally I think
it's the right way to go, so we need to get ready. KDE is known to be early
adopters of new technology and Wayland is an area where it really makes sense.
There a two ways to approach it:
1. writing a new compositor
2. port KWin to Wayland
Both are valid approaches and have advantages and disadvantages. I think it is
possible to port kwin and that it seems to be the better choice to go that
path. We have hardly the manpower to maintain one window manager, I don't
expect us to be able to maintain two window managers/compositors and we will
have to keep the X backend for quite some time to go. Also I think that for
our users a path of little steps inside KWin will be more smooth.
With Wayland many things have to be moved into the compositor, like what's
today kdm, screensavers, etc etc. So we really need to get Plasma devs
starting working on KWin ;-) On Wayland I will soon send another mail to the
lists.
*Focus on Compositing*
Whether Wayland will be an issue or not, our focus has to be on the
compositing stack. From a window manager perspective KWin is stable, feature
rich and without many bugs. Our compositing backend looks pretty good nowadays
and we have several unique features. I found many issues in the stack during
the ES port and I will concentrate on fixing them. So to say: focus on
elegance :-)
So that's it. Plasma devs I would like to have some feedback :-)
Happy and successful new year to everybody
Martin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 316 bytes
Desc: This is a digitally signed message part.
Url : http://mail.kde.org/pipermail/plasma-devel/attachments/20101226/0bdb036f/attachment.sig
More information about the Plasma-devel
mailing list