Announcement

Collapse
No announcement yet.

Wayland's Weston Gets A FreeRDP-Based Compositor

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    Originally posted by Ericg View Post
    [cut]Now, you brought up the X backend. The X backend, unless im mistaken, is XWayland. XWayland is so that if you have an application that was specifically written for X (Not done in a modern version of GTK or Qt) that they can still run under Wayland. Wayland will spawn a special X server that is the exact size of their window. X thinks its in charge but when it goes to display the contents of the screen, its actually pushing them to a Wayland buffer and then Wayland handles where, when, and how to display the contents.
    Your clarifications were nice but this part is incorrect I think: with Wayland and X, you can have
    - X on Wayland: an X client which talks with a special X server (XWayland) which itself will use Weston as its backend and then Weston will send the data to its own backend.
    - "Wayland" on X: Weston has an X backend, which means that instead of discussing directly with the hardware, Weston can send its buffers to an X server which will talk with the hardware.
    This was mostly useful when developping Weston..

    Also your clarifications about Wayland was a bit incorrect, Wayland is:
    - the name of the project
    - the name of a protocol
    - the name of a library which implement this protocol.
    Overloading is bad for communication, so I prefer to talk about the Wayland Foo (Foo=project, developers, protocol, library) than Wayland alone.

    Comment


    • #17
      Originally posted by renox View Post
      Your clarifications were nice but this part is incorrect I think: with Wayland and X, you can have
      - X on Wayland: an X client which talks with a special X server (XWayland) which itself will use Weston as its backend and then Weston will send the data to its own backend.
      - "Wayland" on X: Weston has an X backend, which means that instead of discussing directly with the hardware, Weston can send its buffers to an X server which will talk with the hardware.
      This was mostly useful when developping Weston..

      Also your clarifications about Wayland was a bit incorrect, Wayland is:
      - the name of the project
      - the name of a protocol
      - the name of a library which implement this protocol.
      Overloading is bad for communication, so I prefer to talk about the Wayland Foo (Foo=project, developers, protocol, library) than Wayland alone.
      Yes Wayland is the protocol, Wayland is the project and libwayland is the library that implements the protocol, but the post was mainly just about the differenc between Wayland and Weston since thats what was being discussed.

      X clients under Wayland is XWayland (see: http://wayland.freedesktop.org/xserver.html) XWayland has to be merged into the X server to listen for Wayland connections.

      I'm sure there was a Wayland-clients-under-X way but I have yet to see a link describing it.

      Comment


      • #18
        You wrote "Now, you brought up the X backend. The X backend, unless im mistaken, is XWayland" and "XWayland has to be merged into the X server to listen for Wayland connections."

        but wikipedia says "xwayland[37] was written to enable running X11 applications through an X server, optionally rootless, running as a Wayland client" which means that XWayland is not listening to "Wayland connection"! It is listening for X client connections and then sending the buffer resulting of their (X) commands to Weston as a Wayland client.

        Comment


        • #19
          Originally posted by renox View Post
          You wrote "Now, you brought up the X backend. The X backend, unless im mistaken, is XWayland" and "XWayland has to be merged into the X server to listen for Wayland connections."

          but wikipedia says "xwayland[37] was written to enable running X11 applications through an X server, optionally rootless, running as a Wayland client" which means that XWayland is not listening to "Wayland connection"! It is listening for X client connections and then sending the buffer resulting of their (X) commands to Weston as a Wayland client.
          from the link:
          Wayland is a complete window system in itself, but even so, if we're migrating away from X, it makes sense to have a good backwards compatibility story. With a few changes, the Xorg server can be modified to use wayland input devices for input and forward either the root window or individual top-level windows as wayland surfaces. The server still runs the same 2D driver with the same acceleration code as it does when it runs natively. The main difference is that wayland handles presentation of the windows instead of KMS.
          Xwayland adds support into the X server to push the images to a wayland buffer, instead of the screen. You dont have to modify any clients to get this, but you do have to modify the X server. Its not seamless for the X server, it does actually know that its not in TOTAL control anymore because theres a special wayland code path (it gets wayland input devices, see above)

          Quite honestly im not even sure what we're debating at this point... See: https://vignatti.wordpress.com/2012/06/13/x-on-wayland/

          The X server, with the Wayland backend on it (xwayland), keeps listening Weston via a special Wayland protocol interface. Weston binds such interface and announces back the socket that X clients will be connecting to (xserver_send_listen_socket event) and the first X client that was just connected (xserver_send_client event).

          Comment


          • #20
            I think that we agree totally on how XWayland works, I was just pointing out that some of your sentences were a bit ambiguous, but maybe it's because I'm not a native English speaker..

            Comment


            • #21
              Originally posted by Ericg View Post
              Now, you brought up the X backend. The X backend, unless im mistaken, is XWayland. XWayland is so that if you have an application that was specifically written for X (Not done in a modern version of GTK or Qt) that they can still run under Wayland. Wayland will spawn a special X server that is the exact size of their window. X thinks its in charge but when it goes to display the contents of the screen, its actually pushing them to a Wayland buffer and then Wayland handles where, when, and how to display the contents.
              I think what renox was trying to clarify is that the X11 backend in Weston (x11-backend.so) is not XWayland, it's the backend that allows Weston to run inside an X environment. So, if you run Weston inside a running X environment, you get a window that pop up with Weston running inside it. This weston communicates with the running X server and sends its buffer updates to X. This is useful for running Weston when your hardware doesn't support the DRM backend.

              XWayland is not a backend per se, ie. you don't run Weston "on" this backend. Instead, as you say, this module listens for applications launched in Weston that try to connect to an X server, and if they do (if it's an old program written specifically for X), then Weston launches an X server, and takes the buffer that the application sends to this spawned X server and displays it as any other application running under Weston.

              Looks like this: http://i.imgur.com/lvUbYIb.png

              Here you have Google Chrome, gedit, gnome-control-center, gnome-font-viewer, smuxi, synaptic and gnome-terminal running as XWayland clients inside Weston.

              Comment


              • #22
                Originally posted by renox View Post
                I think that we agree totally on how XWayland works, I was just pointing out that some of your sentences were a bit ambiguous, but maybe it's because I'm not a native English speaker..
                Lol okay then

                Comment


                • #23
                  RDP backend

                  Has anyone actually managed to connect to wayland/weston via RDP protocol? I've enabled rdp-backend and it seems to be working but when it starts running FreeRDP complains about Address being already in use and it segfaults having negotiated a connection to an external client. Also, when I run weston with rdp-backend enabled then desktop-shell does not seem to be launching at all.

                  I'm sorry but I am a newbie to wayland/weston devepment and may confuse a few terms.

                  Comment

                  Working...
                  X