22 Jul 2018

feedPlanet KDE

This week in Usability & Productivity, part 28

Here's another big week for KDE's Usability and Productivity initiative. We're getting ready for the release of KDE Applications 18.08-the second of our three yearly Applications releases. As the numbers in the version suggest, it will be released in August of 2018, about a month from now. As such, there's been a lot of focus on new features and polish for core KDE apps such as Dolphin, Gwenview, Konsole, and Spectacle. We're also ramping up our work for KDE Plasma 5.14, which is scheduled for release in October.

To learn more about KDE's software release schedule, check out https://community.kde.org/Schedules. To learn more about what we did last week, keep reading!

New Features


UI Polish & Improvement

Wanna be a part of this? Of course you do, because you want to make a difference, and you want to help make the world's best free operating system even better. It's more important than ever. So hop on over to https://community.kde.org/Get_Involved! There's room for everyone, and you don't even need to be a programmer! I'd never written a line of C++ or QML before getting started in the KDE community. You can do it!

If my efforts to perform, guide, and document this work seem useful and you'd like to see more of them, then consider becoming a patron on Patreon, LiberaPay, or PayPal. Also consider making a donation to the KDE e.V. foundation.

22 Jul 2018 4:26am GMT

21 Jul 2018

feedPlanet KDE

Plasma 5.14 Wallpaper “Cluster”

The time for a new Plasma wallpaper is here, so for 5.14 I'm excited to offer up "Cluster".

But first, please allow me to gush for a moment. In tandem with Inkscape, this is the first wallpaper for KDE produced using the ever excellent Krita. For graphic design my computer has a bit of beef to it, but when I work with Inkscape or GIMP things always chug just a bit more than I feel they should. Whenever I've had the distinct pleasure of opening Krita, even on my lesser powered laptop, it's always been productive, rewarding, and performant. I'm looking forward to using Krita more in future wallpapers. *claps for Krita*

Now, with pixmaps there's always a valid concern that higher-resolution monitors will suffer blurring because of low native resolutions. The master file for this slightly larger than 8k, so hopefully this will not be an issue. The only potential problem this causes is the large size of the master files. The Inkscape source will be published when the final wallpaper is released as per usual (just under 50MB), but the Krita-based assets are only going to be available on request. This is because the .kra is 135MB, and I have a feeling a few people might be angry if I load that onto the shared server. Unless they read this and tell me it's fine. Who knows!

The wallpaper still has a polish pass, so rough edges or things that might feel awkward will be ironed out before it's committed. If you have feedback you can comment here or over on the Reddit thread: https://www.reddit.com/r/kde/comments/90syno/plasma_514_wallpaper_cluster/

Here it is;


Click here for 8K image

21 Jul 2018 9:59pm GMT

Upgrading to OpenSuSE Leap 15.0

KDE Project:

Upgrading from Leap 42.3 to Leap 15.0... How hard can it be? Well, there was a bit of fighting necessary. One fight due to an encrypted root partition, another one due to NVIDIA and libGL.

I used the zypper upgrade method, from a text virtual terminal (after stopping X), which always seems safer to me than booting on a USB disk and hoping the partition setup is correct.

After a successful zypper dup, the first reboot led to an error like
"Failed to start systemd.cryptsetup@long_name_here.service, see systemctl status blah blah" (yeah right, with no root partition mounted, there are no logs anywhere)

Booting in rescue mode on a USB key and doing `cryptsetup luksOpen /dev/sda6 cr` worked, so no issue with crypto libraries or something, it was just systemd being stupid. I mounted the root partition into /mnt and edited its /etc/crypttab. Turns out the last argument on each line was timeout=0 (due to something I tried a long ago, it's supposed to work, but it doesn't seem to), which I replaced with none, and while at it I also replaced the /dev/disk/by-id device name with a UUID (found with `blkid /dev/sda6`), as suggested on a forum. After the usual `mkinitrd` and `update-bootloader --refresh`, and a reboot, it worked, it's now asking my for my crypto password! Much better. I'm not happy about systemd-cryptsetup's error handling here....

Next problem: I got a mouse cursor, but sddm doesn't show up, can't log in.
`journalctl -S today` says sddm-greeter crashed.
gdb on a core dump shows it crashed in glXMakeCurrentReadSGI
`rcxdm stop` and `startx` gets me an X session, but kwin_x11 crashes often, also in glXMakeCurrentReadSGI

Clearly a GL problem. glxinfo says:

libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast

Using `strace -e file glxinfo |& grep -i libgl`, I found the problem.
/usr/lib64/libGL.so.1 was a symlink to libGL.so.1.2.0, which rpm -qf said it didn't come from any RPM.
On the other hand there was a libGL.so.1.0.0 in that directory too, coming from Leap 15's libglvnd.
Removing libGL.so.1.2.0 and making the symlink point to libGL.so.1.0.0 fixed the issue. After a reboot I finally have sddm and plasma working.

Maybe this helps someone out there....

21 Jul 2018 5:20pm GMT

18 Jul 2018


Christian Schaller: An update from Fedora Workstation land

Battery life
I was very happy to see that Fedora Workstation 28 in the Phoronix benchmark got the best power consumption on a Dell XPS 13. Improving battery life has been a priority for us and Hans de Goede has been doing some incredible work so far. And best of all; more is to come :). So if you want great battery life with Linux on your laptop then be sure to be running Fedora on your laptop! On that note and to state the obvious, be aware that Fedora Workstation adoption rates are actually a major metric for us to decide where to put our efforts, so if we see good growth in Fedora due to people enjoying the improved battery life it enables us to keep investing in improving battery life, if we don't see the growth we will need to conclude people don't care that much and more our investment elsewhere.

Desktop remoting under Wayland
The team is also making great strides with desktop remoting under Wayland. In Fedora Workstation 29 we will have the VNC based GNOME Shell integrated desktop sharing working under Wayland thanks to the work done by Jonas Ådahl. It relies on PipeWire to share you Wayland session over VNC.
On a similar note Jan Grulich, Tomas Popela and Eike Rathke has been working on enabling Wayland desktop sharing through Firefox and Chromium. They are reporting good progress and actually did a video call between Firefox and Chromium last week, sharing their desktops with each other. This is enables by providing a PipeWire backend for both Firefox and Chromium. They are now working on cleaning up their patches and prepare them for submission upstream. We are also looking at providing a patched Firefox in Fedora Workstation 28 supporting this.

Wim Taymans talked about and demonstrated the latest improvements to PipeWire during GUADEC last week. He now got a libpulse.so drop in replacement that allows applications like Totem and Rhythmbox to play audio through PipeWire using the PulseAudio GStreamer plugin as Pipewire now provides a libpulse.so drop in replacement. Wim also keeps improving the Jack support in PipeWire by testing Jack applications one by one and fixing corner cases as he discovers them or they are reported by the Linux pro-audio community. We also ended up ordering Wim a Sony HT-Z9F soundbar for testing as we want to ensure PipeWire has great support for passthrough, be that SPDIF, HDMI or Bluetooth. The HT-Z9F also supports LDAC audio which is a new high quality audio format for Bluetooth and we want PipeWire to have full support for it.
To accelerate Pipewire development and adoption for audio we also decied to try to organize a PipeWire and Linux Audio hackfest this fall, with the goal of mapping our remaining issues and to try to bring the wider linux audio community together. So I am very happy that Arun Raghavan of PulseAudio fame agreed to be one of the co-organizer of this hackfest. Anyone interested in attending the PipeWire 2018 hackfest either add yourself to the attendee list or contact me (contact information can be found through the hackfest page) and I be happy to add you. The primary goal is to have developers from the PulseAudio and JACK communities attend alongside Wim Taymans and Bastien Nocera so we can make sure we got everything we need on the development roadmap and try to ensure we all pull in the same direction.

GNOME Builder
Christian Hergert did an update during GUADEC this year on GNOME Builder. As usual a ton of interesting stuff happening including new support for developing towards embedded devices like the upcoming Purism phone. Christian in his talk mentioned how Builder is probably the worlds first 'Container Native IDE' where it both is being developed with being packaged as a Flatpak in mind, but also developed with the aim of creating Flatpaks as its primary output. So a lot of effort is being put into both making sure it works well being inside a container itself, but also got all the bells and whistles for creating containers from your code. Another worthwhile point to mention is that Builder is also one of the best IDEs for doing Rust development in general!

Game mode in Fedora
Feral Interactive, one of the leading Linux game companies, released a tool they call gamemode for Linux not long ago. Since we want gamers to be first class citizens in Fedora Workstation we ended up going back and forth internally a bit about what to do about it, basically discussing if there was another way to resolve the problem even more seamlessly than gamemode. In the end we concluded that while the ideal solution would be to have the default CPU governor be able to deal with games better, we also realized that the technical challenge games posed to the CPU governor, by having a very uneven workload, is hard to resolve automatically and not something we have the resources currently to take a deep dive into. So in the end we decided that just packaging gamemode was the most reasonable way forward. So the package is lined up for the next batch update in Fedora 28 so you should soon be able to install it and for Fedora Workstation 29 we are looking at including it as part of the default install.

18 Jul 2018 3:23pm GMT

16 Jul 2018


Rodrigo Siqueira: Add infrastructure for Vblank and page flip events in vkms simulated by hrtimer

Add infrastructure for Vblank and page flip events in vkms simulated by hrtimer

Since the beginning of May 2018, I have been diving into the DRM subsystem. In the beginning, nothing made sense to me, and I had to fight hard to understand how things work. Fortunately, I was not alone, and I had great support from Gustavo Padovan, Daniel Vetter, Haneen Mohammed, and the entire community. Recently, I finally delivered a new feature for VKMS: the infrastructure for Vblank and page flip events.

At this moment, VKMS have regular Vblank events simulated through hrtimers (see drm-misc-next), which is a feature required by VKMS to mimic real hardware [6]. The development approach was entirely driven by the tests provided by IGT, more specifically the kms_flip. I modified IGT to read a module name via command line and force the use of it, instead of using only the modules defined in the code (patch submitted to IGT, see [1]). With this modification in the IGT, my development process to add a Vblank infrastructure to VKMS had three main steps as Figure 1 describes.

foo Figure 1: My work cycle in VKMS

Firstly, I focused only on the subtest "basic-plain-flip" from IGT and after each execution of the test I checked the failure messages. Secondly, I tried to write the required code to make the test pass; it is essential to highlight that this phase sometimes took me days to understand the problem and implement the fix. Finally, after I overcome the failure, I just put an additional effort to improve the implementation. As can be seen in the patchset send to add the Vblank support [2], the first set of patches was not directly related to the Vblank itself, but it was a necessary infrastructure required for kms_flip to work.

foo Figure 2: sudo ./tests/kms_flip --run-subtest basic-plain-flip --force-module vkms

After an extended period of work to make VKMS pass in the basic-plain-flip, I finally achieved it thanks to all the support that I received from the DRM community. Next, I started to work on the subtest "wf_vblank-ts-check", and here I spent a lot of time debugging problems. My issue here was due to the stochastic test behavior, sometimes it passed and other, it fails, and I supposed the problem was related to the accumulation of errors during the page flip step. As a result, I put a considerable effort to make the timer in the page flip precise, I end up with a patch that calculates the exact moment for the next period (see [5]). Nevertheless, after I submitted the patch, Chris Wilson highlighted that I was reinventing the wheel since hrtimer already did the required calculations [4]; he was 100% right, after his comment I looked line by line of hrtimer_forward, and I concluded that I implemented the same algorithm. I lost some days recreating something that is not useful in the end; however, it was really valuable for me since I learned how hrtimer works and also expanded my comprehension about Vblank. Finally, Daniel Vetter precisely pointed out a series of problems in the patch (see [3]) that not only improved the tests, but also made most of the tests in the kms_flip pass.

In conclusion, adding the infrastructure for Vblank and page flip events in vkms was an exciting feature for VKMS, but also it was an important task to teach me how things work in the DRM. I am still focused on this part of the VKMS, but now, I am starting to think how can I add virtual hardware which does not support Vblank interrupt. Finally, I want to write a detailed blog post on how I implemented the Vblank support in the VKMS and another post about timers (users and kernel space); I believe this sort of post could be helpful for someone that is just starting in the DRM subsystem.

Thanks for all the DRM community that is always kind and provide great help for a newcomer like me :)


  1. Force option in IGT
  2. Adding infrastructure for Vblank and page flip events in vkms
  3. Daniel Vetter comments in V2
  4. Chris Wilson comments about hrtimer
  5. Calculating the period
  6. DRM misc-next

16 Jul 2018 3:00am GMT

09 Jul 2018


Eric Anholt: 2018-07-09

Now that my V3D GPU hangs are cleared up, I made a lot of progress on conformance:

Fixes from last week:

Fail/(Pass+Fail) ratios after my weekend run:

I've debugged the first MSAA crash, but there are some MSAA resolve bugs after that which I need to sort out (some of which are probably the cause of those EGL failures).

On the VC4 front, Boris landed the writeback changes, and I submitted the DT for it in my ARM pull request.

09 Jul 2018 12:30am GMT