[PATCH 03/21] docs: Improve the 'Types of Compositors' section
Daniel Stone
daniel at fooishbar.org
Sat Mar 30 18:38:39 PDT 2013
Hi,
On 30 March 2013 20:48, Jason Ekstrand <jason at jlekstrand.net> wrote:
> Some of this stuff has been somewhat re-defined lately and may not be
> up-to-date. You may want to talk to Kristian or Daniel and see what
> the current line-of-thought on types of compositors is. I like the
> fact that you expanded on things quite a bit.
>
I'm kinda flattered, but also a very poor person to ask about the current
state of system vs. session compositors. :)
Cheers,
Daniel
> --Jason Ekstrand
>
> On Sat, Mar 30, 2013 at 12:11 AM, <matthias.clasen at gmail.com> wrote:
> > From: Matthias Clasen <mclasen at redhat.com>
> >
> > Turn the bullet-point lists into full paragraphs.
> > ---
> > doc/Wayland/en_US/Compositors.xml | 119
> +++++++++++++++-----------------------
> > 1 file changed, 46 insertions(+), 73 deletions(-)
> >
> > diff --git a/doc/Wayland/en_US/Compositors.xml
> b/doc/Wayland/en_US/Compositors.xml
> > index d5311fa..f674776 100644
> > --- a/doc/Wayland/en_US/Compositors.xml
> > +++ b/doc/Wayland/en_US/Compositors.xml
> > @@ -5,57 +5,53 @@
> > ]>
> > <chapter id="chap-Compositors">
> > <title>Types of Compositors</title>
> > +
> > + <para>
> > + Compositors come in different types, depending on which
> > + role they play in the overall architecture of the OS.
> > + </para>
> > +
> > <section id="sect-Compositors-System-Compositor">
> > <title>System Compositor</title>
> > <para>
> > - <itemizedlist>
> > - <listitem>
> > - <para>
> > - ties in with graphical boot
> > - </para>
> > - </listitem>
> > - <listitem>
> > - <para>
> > - hosts different types of session compositors
> > - </para>
> > - </listitem>
> > - <listitem>
> > - <para>
> > - lets us switch between multiple sessions (fast user
> switching,
> > - secure/personal desktop switching)
> > - </para>
> > - </listitem>
> > - <listitem>
> > - <para>
> > - multiseat
> > - </para>
> > - </listitem>
> > - <listitem>
> > - <para>
> > - linux implementation using libudev, egl, kms, evdev, cairo
> > - </para>
> > - </listitem>
> > - <listitem>
> > - <para>
> > - for fullscreen clients, the system compositor can reprogram
> the
> > - video scanout address to source from the client provided
> buffer.
> > - </para>
> > - </listitem>
> > - </itemizedlist>
> > + A system compositor can run from early boot until shutdown.
> > + It effectively replaces the kernel vt system, and can tie in
> > + with the systems graphical boot setup and multiseat support.
> > + </para>
> > + <para>
> > + A system compositor can host different types of session
> > + compositors, and let us switch between multiple sessions
> > + (fast user switching, or secure/personal desktop switching).
> > + </para>
> > + <para>
> > + A linux implementation of a system compositor will typically
> > + use libudev, egl, kms, evdev and cairo.
> > + </para>
> > + <para>
> > + For fullscreen clients, the system compositor can reprogram the
> > + video scanout address to read directly from the client provided
> > + buffer.
>
> Does this really need to be 4 separate paragraphs?
>
> > </para>
> > </section>
> > <section id="sect-Compositors-Session-Compositor">
> > <title>Session Compositor</title>
> > <para>
> > + A session compositor is responsible for a single user session.
> > + If a system compositor is present, the session compositor will
> > + run nested under the system compositor. Nesting is feasible
> because
> > + the protocol is asynchronous; roundtrips would be too expensive
> > + when nesting is involved. If no system compositor is present, a
> > + session compositor can run directly on the hw.
> > + </para>
> > + <para>
> > + X applications can continue working under a session compositor
> > + by means of a root less X server that is activated on demand.
> > + </para>
> > + <para>
> > + Possible examples for session compositors include
> > <itemizedlist>
> > - <listitem>
> > - <para>
> > - nested under the system compositor. nesting is feasible
> because
> > - protocol is async, roundtrip would break nesting
> > - </para>
> > - </listitem>
> > - <listitem>
> > - <para>
> > + <listitem>
> > + <para>
> > gnome-shell
> > </para>
> > </listitem>
> > @@ -66,17 +62,12 @@
> > </listitem>
> > <listitem>
> > <para>
> > - compiz?
> > - </para>
> > - </listitem>
> > - <listitem>
> > - <para>
> > - kde compositor?
> > + kwin
> > </para>
> > </listitem>
> > <listitem>
> > <para>
> > - text mode using vte
> > + kmscon
> > </para>
> > </listitem>
> > <listitem>
> > @@ -89,29 +80,17 @@
> > fullscreen X session under wayland
> > </para>
> > </listitem>
> > - <listitem>
> > - <para>
> > - can run without system compositor, on the hw where it makes
> > - sense
> > - </para>
> > - </listitem>
> > - <listitem>
> > - <para>
> > - root window less X server, bridging X windows into a wayland
> > - session compositor
> > - </para>
> > - </listitem>
> > </itemizedlist>
> > </para>
> > </section>
> > <section id="sect-Compositors-Embedding-Compositor">
> > <title>Embedding Compositor</title>
> > <para>
> > - X11 lets clients embed windows from other clients, or lets client
> copy
> > - pixmap contents rendered by another client into their window.
> This is
> > - often used for applets in a panel, browser plugins and similar.
> > + X11 lets clients embed windows from other clients, or lets clients
> > + copy pixmap contents rendered by another client into their window.
> > + This is often used for applets in a panel, browser plugins and
> similar.
> > Wayland doesn't directly allow this, but clients can communicate
> GEM
> > - buffer names out-of-band, for example, using d-bus or as command
> line
> > + buffer names out-of-band, for example, using D-Bus, or command
> line
> > arguments when the panel launches the applet. Another option is
> to
> > use a nested wayland instance. For this, the wayland server will
> have
> > to be a library that the host application links to. The host
> > @@ -125,14 +104,8 @@
> > application.
> > </para>
> > <para>
> > - <itemizedlist>
> > - <listitem>
> > - <para>
> > - firefox embedding flash by being a special purpose
> compositor to
> > - the plugin
> > - </para>
> > - </listitem>
> > - </itemizedlist>
> > + An example for this kind of setup is firefox embedding the flash
> > + player as a kind of special-purpose compositor.
> > </para>
> > </section>
> > </chapter>
> > --
> > 1.8.1.4
> >
> > _______________________________________________
> > wayland-devel mailing list
> > wayland-devel at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/wayland-devel
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/wayland-devel/attachments/20130331/738db915/attachment-0001.html>
More information about the wayland-devel
mailing list