Testing flickerfree boot

Hey there,

I’ve landed a new plymouth snapshot in eoan, it should get us close from a really flickerfree boot (at least on recent intel video cards systems booting with uefi)

The new theme uses the vendor logo from the firmware with a spinner under it (same as windows is doing) and isn’t installed on upgrades yet but if you want to give it a try that could be welcome, just install plymouth-theme-spinner and reboot your machine and it should just work.

Upstream put a FAQ up which it might be worth reading but commenting/raising issues

Thanks for testing!

(edit, the package migrated to eoan proper now)

13 Likes

I want to see how it looks.

I am going to be redoing my test system after the snap snafu, and will install with UEFI this time and test this out in the evening.

@frederik-f, @c-lobrano, @didrocks, wouldn’t the new splash be a good time to consider a black background for the GDM screen again to make the transition splash - - >GDM more seamless?

OMG Ubuntu covered the initiative here: https://www.omgubuntu.co.uk/2019/07/ubuntu-flicker-free-boot

2 Likes

Installed a fresh daily update and trying it out. Upon shutdown I see Dell logo and a spinning circle. Boot-up start with a purple background and then switches to Dell logo and a spinning circle.

Installed on 19.10 with:

sudo apt update
sudo apt full-upgrade
sudo apt install plymouth-theme-spinner

:heart: I love that this is working, but I find the same problem on a Lenovo desktop as Mohan does with Dell:

  1. Black screen with Lenovo logo, no spinner.
  2. Purple screen with no logos or spinners.
  3. Black screen with Lenovo logo and spinner.
  4. Login screen.

Rebooting is similarly confused. The Lenovo logo on black reappears after the purple grub screen. It gives the user the impression that the machine is rebooting multiple times because it looks like the BIOS comes after grub.

For me the fix was to add kernel command line option i915.fastboot=1 to GRUB_CMDLINE_LINUX_DEFAULT in /etc/default/grub and then:

sudo update-grub

Although the FAQ suggests my 7th generation Intel CPU/GPU (post-Skylake) should not have needed that. It did. The purple screen is now gone, though I do get one flicker (an unwanted mode set somewhere) during the Lenovo logo’d boot process. At least it remains black now.

Since people without Intel fastboot are going to run into this problem, and it will look more broken than before, I suggest detecting that somehow and making fastboot a prerequisite.

2 Likes

Another issue is that rebooting/shutdown shows a black screen with a flashing cursor for a second. I am guessing that’s the time between the shell exiting and Plymouth taking over. To make it more seamless Plymouth would probably have to take over the screen before gnome-shell exits.

Thanks for testing!

You shouldn’t have to tweak grub since that kernel option should be default on > skylake since
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=3d6535cb
which is included in our current 5.2 kernel

Unsure what’s going on there…

Suddenly my system doesn’t need i915.fastboot=1 anymore. It works automatically as it should. :man_shrugging:

Still, this other bug is slightly annoying.

@mohan-ram, can you please try:

sudo update-grub

and tell us if that fixes the purple screen for you?

We can consider it for sure. At the moment, since the GDM is just the last step before login, I don’t see it as a big problem if it transitions from black to purple.
I am not against, but comparing to the Fedora dark GDM, the Ubuntu one seems better to me.

1 Like

Was a very busy morning before I had to head into work, I will definitely try this out when I get home this evening and try that out and get back to you. One suggestion I had was with the spinning circle we don’t really get a progress of a boot, if it were a progress bar similar to macOS maybe that would be better. Thoughts?

If there is absolutely no flicker between GDM and the desktop for you, I would understand your point.

Currently it turns shortly to black before loading Gnome-shell. “Black splash - black - black GDM - black - gnome-shell” is better than “black splash - black - aubergine GDM - black - Gnome-shell” in my book.

I understand the problem, but I am not familiar with the fix progress. Is it fixable? I’d be more into fixing the bug than dealing with workaround, but if this is not possible, okay

I guess that it is not a happy coincidence that Windows, Red Hat and perhaps MacOS (?) choose black for the OS initialization. Maybe it is technically near impossible to have flicker-free without cheating a bit.

Maybe we can have an experiment with a black background and we might end up prefering it aesthetically?

1 Like

@vanvugt yes that worked. Thanks. I do not see purple screen. I tried rebooting and booting up from cold boot.

Maybe instead of changing the GDM background to black, just have it do a quick (0.25s?) crossfade from black to purple? I don’t know how hard that would be to do but it sounds like a better option to me.

Yes I have now confirmed on an HP laptop also that that’s the fix. If you get an unwanted purple screen between the two black screens then you need to do this:

sudo update-grub

@seb128, this feels like a missing step from the installation of plymouth-theme-spinner which should be automated.

1 Like

@mohan-ram, I agree a progress bar would be nice. But the bigger problem I find with Plymouth is that it starts so late it almost shouldn’t exist at all:

|-----------------|----------------|---|--+ Login screen
       BIOS          Kernel boot     ^ Plymouth animation
|<---- animation not possible ---->|

In my experience on many machines, the Plymouth animation seems to start too late to be useful and ends almost immediately.

Flickerfree boot is still useful, because that will get us a consistent screen from end-to-end. But if you want something animated by Plymouth then that can only occur in the final section in the above diagram.

In theory we could start animating during kernel boot, but that would probably be a kernel project and not involve Plymouth.

5 Likes

It is not really a matter of aesthetic in this case, we already had black and moved to purple, we know how it was. If we change to black it will only be to avoid this annoying flickering, but according to @vanvugt reply, it seems the fix is ready, so I will wait a little before changing GDM again.