Optimization in KWin 4.6

Apart from the scripting interface KWin will not ship any major new feature in 4.6. Most of the work I did for 4.6 was to improve the overall performance of our compositing engine. One of the first improvements I added was for the text and icon overlays in our effects. Now the texture and geometry is always cached and Texture from Pixmap (TFP) is used instead of costly QPixmap/QImage conversations.

Another area which saw great improvements are effects which transform one window. These effects used to cause the whole screen to repaint even if only a small region changed. Most prominent visible is this with the Show Paint effect enabled and for example Sliding Popups or Wobbly Windows. Those effects are now repainting only the changed area which is a great improvement, especially considering that there is less blurring involved. The changes seem to make a difference as developers running trunk asked in #kwin if we changed something in Wobbly Windows. Of course not each effect does benefit from this change. It is an ongoing issue and one effect after another has to be improved.

Another area for optimization is not directly in the compositing engine but more in making use of the advantages of compositing in general. 4.6 will include a new effect to render the startup notification ("bouncing cursor"). The current way involves resizing and shaping a window and moving this window. With compositing enabled this can be a costly operation (for me the performance was so bad, that I disabled the notification completely). The new effect does the same animation as the legacy system without using a window at all. It is just a texture rendered on the screen. This means the whole window transformations are not needed and also the costly TFP operations are not required. Another nice side-effect is that the icon can now use an alpha channel – the old animation transformed each icon to a RGB-only icon. If compositing is not used the system will fall back to the legacy rendering which is btw. not part of KWin.

During the last week I worked on another optimization for our Lanczos filter. Especially in Present Windows the filter was causing some performance regressions. Highlighting one of the windows causes the complete screen to repaint (optimization opportunities see above) which caused a new Lanczos filtering for each visible window. The highlighting animation lasts for something like 200 msec with constant fullscreen repaints. It is obvious why this caused a performance regression. My changes cache each generated texture and use this whenever a repaint without change of content is required. So the highlighting does not require a recreation of the texture (the highlighting is added in a later step). So Present Windows in 4.6 will have the performance as it used to be in 4.4 with the improved thumbnails from 4.5. Of course the cache is useful to all places where the Lanczos sampling is used – be it Box Switch or Taskbar Thumbnails.

I hope that with this change the blacklist is no longer required for performance problems but can be used for driver problems only as intended. Also this allows to integrate the Lanczos improved thumbnails in more effects – e.g. Desktop Grid as in the image.

Improving the performance is of course an ongoing issue and there are still some areas where we can get some clever caching in place. For example blur might be a good candidate for improvements. But this is topic for a blog post "Optimization in KWin 4.7".

=-=-=-=-=
Powered by Blogilo

KWin at UDS

The last week I had the opportunity to attend the Ubuntu Developer Summit in Orlando, Florida. I want to thank Canonical for making this possible. UDS is quite different from other Open Source conferences I have been so far (Akademy, Desktop Summit, Plasma sprints). UDS is really centered about the idea to get things done. The schedule is very exhausting with several one hour sessions per day and up to 14 parallel tracks.

Like Desktop Summit UDS offers the possibility to talk with developers from the "other side". But in addition to the GNOME folks you also have the X, kernel, etc. people around. This is especially from a KWin point of view a real advantage.

I am really glad that I had the opportunity to talk to the people working on Unity. This new desktop shell is a great challenge but also a great opportunity for the free desktops. There is lots to collaborate on and I noticed that Canonical wants to collaborate and is thankful that we as an upstream are collaborative – for example with the Status Notifier/Indicators. This brings me to KWin. As you might have heard of Unity will become the primary desktop shell in Ubuntu 11.04 with Compiz instead of Mutter as the Compositing Manager. This change (which I was aware of for quite some time) is in my opinion the right decision and like Sam I am glad to see development effort in Compiz increase and not Compiz becoming obsoleted by us and GNOME Shell. For us as KWin this brings great opportunities. Canonical is also aware of the driver regressions we run into our latest release. The hardware requirements for Unity are slightly higher than ours. Unity requires Framebuffer Objects (FBO), which we use in various effects (e.g. Blur). Canonical will set up a great testing environment to ensure that the quality of drivers does not regress. With KWin having a similar set of requirements chances are very good that we can profit from that effort. So at least for Kubuntu I am quite confident that 11.04 will be a great release for our users.

Apart from the collaboration on driver requirements the switch to Compiz will hopefully benefit us further. Canonical is really interested in improving the already good collaboration between KWin and Compiz further. Getting us exchanging more ideas and code will help us both and provide our user bases the best window management and compositing experience. The ideas of Canonical are very interesting and I am looking forward to see them happen. So great times are hopefully before us 🙂

One of the first areas we are going to collaborate is the future of window decorations. The idea of client side decorations is dead and we will work on improving what has be started at KDE with allowing the decorations to paint the background of the windows. This will hopefully result in a new theme specification which is finally worked out by the major window managers and cross desktop.

Apart from KWin/Unity I attended quite some Kubuntu sessions and I hope I could give some ideas and feedback to the developers. There is great stuff going on, but I keep that to other bloggers 🙂

=-=-=-=-=
Powered by Blogilo

KWin Bug Day am Sonntag 10.10.10

Wie gerade auf dem Dot angekündigt, wird morgen der erste KWin Bug Day sein. Es geht darum die immer größer werdende Zahl an offenen Bugs zu ordnen. Dazu gehört Bugs zu reproduzieren oder auch zu überprüfen ob Bugs überhaupt noch gültig sind, oder ob wir sie schon längst behoben haben. Hierzu braucht es überhaupt keine Programmierkenntnisse, eine aktuelle KWin Version ist völlig ausreichend. Daher meine Empfehlung: Morgen Update auf Kubuntu 10.10 und danach ab 13 Uhr im #kde-bugs IRC Channel auf FreeNode vorbeischauen und mithelfen.

Schon mal im Voraus vielen Dank an alle, die mithelfen 🙂

=-=-=-=-=
Powered by Blogilo

Entscheidung des Presserats zum Chip Artikel Betriebssysteme im Härtetest

Man erinnert sich vielleicht noch an den Betriebssystem Test zwischen Windows 7, MacOS Snow Leopard und Kubuntu in nicht definierter Version letztes Jahr in der CHIP und auf Focus Online. Ich hatte den Artikel damals auch etwas auseinandergenommen. Zusätzlich hatte ich auch eine Beschwerde beim Presserat gegen den Artikel bei Focus Online eingelegt. Motiviert hat mich vor allem, dass über Tage hinweg jedes mal die selbe Werbeanzeige zu sehen war und immer noch zu sehen ist:

Ich sah in der Werbeanzeige für Windows 7 einen klaren Verstoß gegen den Trennungsgrundsatz von redaktionellem und inhaltlichem Bereich wie er nach Ziffer 7 des Pressekodex nicht gestattet ist. Zusätzlich habe ich mir einen der vielen redaktionellen Fehler herausgepickt und eine Beschwerde wegen Verstosses der Sorgfaltpflich (Ziffer 2) eingelegt. Dazu hab ich den Bereich ausgewählt, bei dem ich mich am Besten auskenne und auch persönlich involviert bin (mittlerweile bin ich Miturheber der angeblich fehlenden Funktion und würde daher nun zum Mittel der Gegendarstellung greifen statt den Presserat anzurufen):

Nach nun etwa einem Jahr kam die endgültige Enscheidung: "Beschwerde begründet, keine Maßname, Ziffer 2"

Eine Verletzung des Trennungsgrundsatzes liegt nicht vor, da die Platzierung der Werbung angeblich nicht beeinflusst werden kann. Als Informatiker halte ich diese Aussage für nun ja nennen wir es schwachsinnig. Ein einfaches Tag-System würde bereits ausreichen um zu garantieren, dass bei einem Artikel zu Windows 7 keine Werbung dafür erscheint. Wäre für die Redaktion sehr hilfreich, da man dann nicht annehmen würde, dass der Artikel gekauft ist.

In Bezug auf die KWin Funktionalität hat die Redaktion dem Presserat auch eine Geschichte aufgedeckt, die – ich kommentiere das hier nicht weiter sonst wird es unfreundlich. Der Presserat hatte diese Geschichte der Redaktion abgekauft und die Beschwerde ursprünglich als unbegründet zurückgewiesen. Nun ja ich mag es nicht wenn man über meine Arbeit lügt und habe daher noch einmal geantwortet und Widerspruch eingelegt. Habe die Stellungsnahme der Redaktion auseinandergenommen und darauf hingewiesen, dass ich ehrenamtlicher Entwickler der Anwendung bin, die besagter Funktion, welche nicht existiert, bereitstellt. Der Presserat hat daruafhin die Beschwerde wieder aufgenommen. Im weiteren Verlauf hat die Redaktion ihre Meinung geändert und bestätigt, dass Kubuntu die Vorschaufunktion besitzt, aber sich auch ein neues Märchen ausgedacht, von wegen auf Ati funktioniert das nicht (hmm welche Karte verwende ich? Ach richtig Ati). Für mich ist das eine weitere Bestätigung, dass die Redaktion eine Entwicklerversion getestet hat, bei der manchmal halt der Catalyst Treiber nicht verfügbar ist. Schwachsinn ist das ganze dennoch, da ich bereits in meiner Stellungsnahme auf die XRender Funktionalität hingewiesen hatte. Ich spiele mit dem Gedanken nun noch einmal an den Presserat zu schreiben ohne erneut Widerspruch einzulegen. Im Gesamten sieht der Presserat nun aber doch die Sorgfaltpflicht verletz und hält die Beschwerde für begründet. Jedoch wird keine Maßnahme ergriffen, da online die Bildbetitelung abgeändert wurde:

Kubuntu-Linux: Eine Übersichtsfunktion für offene Fenster ist serienmäßig auf Systemen ohne OpenGL-Grafikbeschleunigung nicht verfügbar.

Nun ist das eigentlich immer noch genauso falsch, denn serienmäßig ist XRender verfügbar, jedoch standardmäßig nicht aktiviert. Die gesamte Entscheidung des Presserats hab ich als PDF hinterlegt.

Fazit: der Presserat ist ein Papiertiger. Bei einer Beschwerde schenkt er der Redaktion mehr Glauben als dem Beschwerdeführer und führt keinerlei unabhängige Überprüfung durch. Selbst nach einem Widerspruch wird die Aussage der Redaktion nicht noch einmal gegengeprüft (ich hätte das mit der Ati Karte gerne noch einmal auseinandergenommen bevor der Pressearat berät). Für mich war das meine erste Beschwerde beim Presserat und ich vermute, dass es auch meine letzte bleibt.

=-=-=-=-=
Powered by Blogilo

Neustart des KDE Commit-Digest braucht Helfer

Bis zum Februar 2009 gab es eine wöchentliche Zusammenfassung aller KDE Commits im Commit-Digest. Danach hat Danny Allen die Arbeit alleine nicht mehr stemmen können. Mittlerweile arbeitet er daran es neu zu starten mit der Hilfe von vielen Freiwilligen und hat dazu eine Webplattform aufgebaut. Nun braucht es Freiwillige, die mitarbeiten die Commits durchzugehen und wichtige Commits herauszuheben. Mehr Infos dazu in Dannys Blog.

Der Commit-Digest ist ein unglaublich wichtiges Instrument, da er die KDE Entwicklung noch transparenter macht. Die Anwender können dadurch gut die Entwicklung verfolgen und sehen woran die Entwickler arbeiten. Ich erinnere mich daran, dass ich wöchentlich den Digest verfolgte als es zum KDE 4.0 Release ging und der Digest war somit ein wichtiger Faktor, dass ich überhaupt mit der Entwicklung begonnen habe.

Also hier nun auch von mir der Aufruf: helft bitte mit den Commit-Digest wieder mit Leben zu füllen! Danke.

=-=-=-=-=
Powered by Blogilo