0% found this document useful (0 votes)
54 views

Flicker Free Boot: Hans de Goede

Flicker Free Boot aims to provide a smooth graphical boot experience without any screen signal loss or jarring transitions. It achieves this through optimizations in the boot process components like Shim, GRUB, the kernel EFIFB and FBCON drivers, the i915 driver, and Plymouth boot splash to minimize modesetting and defer taking over the framebuffer until needed. These changes allow booting directly into the firmware boot splash graphic until the desktop environment is ready without intermediary console screens.

Uploaded by

hdsetanhdseta
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
54 views

Flicker Free Boot: Hans de Goede

Flicker Free Boot aims to provide a smooth graphical boot experience without any screen signal loss or jarring transitions. It achieves this through optimizations in the boot process components like Shim, GRUB, the kernel EFIFB and FBCON drivers, the i915 driver, and Plymouth boot splash to minimize modesetting and defer taking over the framebuffer until needed. These changes allow booting directly into the firmware boot splash graphic until the desktop environment is ready without intermediary console screens.

Uploaded by

hdsetanhdseta
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 16

Flicker Free Boot

Seamless boot for UEFI systems

Presented by
Hans de Goede
Red Hat Desktop Hardware
Enablement Team
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License
Topics
What / why?
Pre-kernel: Shim, GRUB
Kernel: EFIFB + FBCON
Kernel: i915
Userspace: plymouth
Userspace: framebuffer handover
Flicker Free
Boot?
Flicker Free Boot?
The purpose is to boot to the desktop without
the display ever loosing signal and without any
jarring graphical transitions
Technical users often don’t care what the boot
looks like
For regular users and OEMs however, having a
smooth, professionally looking, boot is quite
important
https://fedorapeople.org/~jwrdegoede/flickerfree-videos/
Shim and GRUB
Shim and GRUB
Shim and GRUB used to make an UEFI call to put
the display in text mode even if they did not
output any text at all
Both have been patched to defer this UEFI call to
the first time they have actual text to output
The shim changes are upstream
The GRUB changes are not upstream as upstream
refuses to accept patches for a compile time
option to make grub not print a version header
Kernel: EFIFB
and FBCON
EFIFB and FBCON
The UEFI FB code does not touch the FB, but the
text-console on FB code, FBCON, takes over the
FB right away, replacing its content with black
FBCON has been patched to defer taking over
to the first time there is actual text to output
EFIFB has been patched to display or restore
the firmware bootsplash image (ACPI BGRT) in
case the firmware does not show this itself
All patches for this are upstream
Disable? Use: fbcon=nodefer video=efifb:nobgrt
Kernel: i915
i915 fastboot support
The Intel GPU display driver will read back the
hardware state when initializing
This allows skipping a full modeset when asked
to set a mode matching the current mode
This (fastboot) is disabled by default because of
some issues on mostly older hardware
Working together with i915 upstream all known
issues have been fixed now
Enabled on Skylake+ in Fedora Rawhide,
upstream 5.1 kernel release
Userspace: plymouth
Plymouth
Until recently plymouth relied on FBCON to pick
a mode and crtc for outputs not setup by UEFI
Since we now defer FBCON taking over the FB,
plymouth has been patched to do this itself
Plymouth now also supports hotplugging
monitors after plymouth starts
Support has been added to plymouth to read the
firmware boot splash (BGRT) and use it as a
background, drawing on top of the splash
All patches for this are upstream
Userspace framebuffer
handover
FB handover (1)
i915 will fallback to scanning out the firmware
splash FB if the FB-owner exits, to avoid this:
Plymouth stops, drops drm-master, does not exit
GDM sets up its own FB, tells i915 to scan that out
GDM tells plymouth its ok to exit
GDM drops drm-master, starts user-session
GDM sleeps 10 seconds after this, then exits
FB handover (2)
Proposal: Add a new IOCTL to tell a KMS driver
to keep the current FB around until a new one is
installed (Patch from Rob Clark in the archives)
Problem: user-session mutter and Xorg FB
contents could be privacy sensitive
For mutter on Wayland we can make it close all
windows and then redraw before the IOCTL
For Xorg I don’t see a solution, so a flicker-free
user-session exit will only work on Wayland
Ideas?
Suggestions?
Questions?
Contact:
hdegoede@redhat.com
Git repositories:
https://github.com/jwrdegoede/

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy