Simple-framebuffer devices driven by simpledrm lack information
like panel-rotation info and physical size, causing the splash
to briefly render on its side / without HiDPI scaling, switching
to the correct rendering when the native driver loads.
To avoid this treat simpledrm devices as fbdev devices and only
use them after the timeout.
Also adds 2 exceptions to this:
1. If nomodeset is passed on the kernel commandline then no native
drivers will load, so in this case it is best to immediately use
SimpleDRM devices when they are detected.
2. On some devics the firmware leave the panel black at boot. In this
case it is desirable to show the splash to the user ASAP so that there
is some visual feedback that the device is booting. Add a support for a
"plymouth.use-simpledrm" kernel cmdline option to show the splash
immediately on SimpleDRM devices rather then waiting for the native
driver to load.
Closes#167
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
ply_string_has_prefix was dropped in commit c7965ea19a ("ply-utils:
Drop unused ply_string_has_prefix helper"). We have a need for this
helper again, so reintroduce it.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
The ply-device-manager.c already assumes that the return value of
udev_device_get_subsystem () is never NULL in many places, including
in the condition of the "else if" just below the check which is
being removed.
Remove the one lonely check for it being NULL for consistency.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
The subsystem variable is also initialized with udev_device_get_subsystem ()
a couple of lines lower.
Remove the first initialization, so that udev_device_get_subsystem ()
does not get called unnecessary when the function exits early because
of the action value.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Using the date at build time prevents the build from being reproducible
later.
In order to facilitate reproducible builds, this commit changes the
logic to derive the version from the date of the last commit.
Plymouth currently assumes that setting the scanout buffer will succeed.
if it fails because of a driver bug or transient failure it should try
again next frame.
This commit adds that error handling code.
Numbers are arbitrary, and we've never successfully made it to
version 1.0 after like 15 years or something.
Furthermore, plymouth has a very slow release schedule at present
and some distros hate building from git.
So, I'd like to start generating tarballs more regularly.
Adopting a version number derived from the date will help facilitate
that.
This commit changes AC_INIT to compute the version automatically.
https://gitlab.freedesktop.org/plymouth/plymouth/-/issues/143https://gitlab.freedesktop.org/plymouth/plymouth/-/issues/158
Allow themes to configure at which percentage of the boot progress the
animation should transition to the end animation.
At Endless we use this to only show the end animation from the start of
the boot splash by setting it to 0.0.
Currently if the screen is rotated by 90 degrees, the effective
width/height will be swapped. Thus we will incorrectly detect the panel
as HiDPI.
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Add a new option called ThemeDir to the configuration file, so a
configurable directory can be used to ship themes. The option applies
only to the theme specified in the same configuration file.