Find a file
Hans de Goede 3aa76fcd87 drm: Do not unnecessarily get output info twice
When a kernel-mode-setting driver loads it will trigger an add udev event
for /dev/dri/card0, followed by one udev change event per connector on the
card. This means that after our initial probe of the card,
create_heads_for_active_connectors is called a number of times for all the
udev change events.

After the initial enum our outputs array will contain active entries for
all connected displays. Meaning that the first loop in
create_heads_for_active_connectors would call get_output_info for
these outputs. Under the hood this does a number of ioctls and especially
the drmModeGetConnector call can be quite expensive.

Then in the second loop create_heads_for_active_connectors would call
get_output_info for all connectors, including for the once which were
checked in the first loop.

There is no reason why we cannot check if active connectors in the
old outputs array have changed when we are calling get_output_info for
all connectors to build the new array. This avoids unnecessarily making
the expensive get_output_info call twice for active connectors in the
old outputs array.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2020-03-25 18:14:54 +01:00
docs docs: fix some typos 2018-06-06 13:29:09 -04:00
images ship bizcom unconditionally 2008-06-22 00:49:24 -04:00
po gitignore: Add translation related generated files to .gitignore 2019-10-15 11:33:55 +02:00
scripts build-goo: Remove vestigial remnants of old GDM integration code. 2020-03-07 00:36:54 +08:00
src drm: Do not unnecessarily get output info twice 2020-03-25 18:14:54 +01:00
systemd-units Add RemainAfterExit=yes to plymouth's systemd service files 2020-03-23 17:22:46 +01:00
themes two-step: Add UseEndAnimation setting 2020-03-11 19:22:31 +00:00
.gitignore gitignore: Add translation related generated files to .gitignore 2019-10-15 11:33:55 +02:00
acinclude.m4 [configure] Add AS_AC_EXPAND for configured dirs 2009-08-07 16:32:32 -04:00
AUTHORS Add Peter to AUTHORS 2008-06-10 21:59:10 -04:00
autogen.sh build-goo: get rid of warnings related to non-GNU systems 2013-12-11 13:32:54 -05:00
ChangeLog Put in ChangeLog request to not use ChangeLog 2008-05-20 15:15:03 -04:00
configure.ac build-goo: Remove vestigial remnants of old GDM integration code. 2020-03-07 00:36:54 +08:00
COPYING initial import 2007-05-08 17:48:00 -04:00
INSTALL build-goo: Remove vestigial remnants of old GDM integration code. 2020-03-07 00:36:54 +08:00
Makefile.am Add support for translating the user visible strings in some themes 2019-02-26 17:05:14 +01:00
NEWS initial import 2007-05-08 17:48:00 -04:00
README README: add link to Code of Conduct 2018-08-06 14:58:18 -04:00
TODO Add hack to make maintenance mode probably work when 2008-06-30 17:55:15 -04:00

plymouth - graphical boot animation and logger

Plymouth is an application that runs very early in the boot process
(even before the root filesystem is mounted!) that provides a graphical
boot animation while the boot process happens in the background.

It is designed to work on systems with DRM modesetting drivers. The idea
is that early on in the boot process the native mode for the computer is
set, plymouth uses that mode, and that mode stays throughout the entire
boot process up to and after X starts. Ideally, the goal is to get rid
of all flicker during startup.

For systems that don't have DRM mode settings drivers, plymouth falls
back to text mode (it can also use a legacy /dev/fb interface).

In either text or graphics mode, the boot messages are completely
occluded.  After the root file system is mounted read-write, the
messages are dumped to /var/log/boot.log. Also, the user can see the
messages at any time during boot up by hitting the escape key.

Plymouth isn't really designed to be built from source by end users. For
it to work correctly, it needs integration with the distribution.
Because it starts so early, it needs to be packed into the
distribution's initial ram disk, and the distribution needs to poke
plymouth to tell it how boot is progressing.

plymouth ships with two binaries: /sbin/plymouthd and /bin/plymouth

The first one, plymouthd, does all the heavy lifting. It logs the
session and shows the splash screen. The second one, /bin/plymouth, is
the control interface to plymouthd.

It supports things like plymouth show-splash, or plymouth
ask-for-password, which trigger the associated action in plymouthd.

Plymouth supports various "splash" themes which are analogous to
screensavers, but happen at boot time. There are several sample themes
shipped with plymouth, but most distributions that use plymouth ship
something customized for their distribution.

Plymouth isn't done yet. It's still under active development, but is
used in several popular distros already, including Fedora, Mandriva,
Ubuntu and others.  See the distributions page for more information.

As with other projects hosted on freedesktop.org, Plymouth follows its
Code of Conduct, based on the Contributor Covenant. Please conduct
yourself in a respectful and civilized manner when using the above
mailing lists, bug trackers, etc:

	https://www.freedesktop.org/wiki/CodeOfConduct