[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