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