

The Linux graphics stack from X to Wayland - e1ven
http://arstechnica.com/open-source/guides/2011/03/the-linux-graphics-stack-from-x-to-wayland.ars

======
bnegreve
I am the only one to think that X network transparency is a great and very
useful feature ?

I don't see the point, if I ever need a Windows like operating system, I can
just use Windows.

~~~
modeless
X sucks at network transparency, supposedly its one redeeming feature. RDP is
better. X is slow (xlib requires too many round trips) and doesn't forward
things users care about like sound and local devices like printers, USB
sticks, cameras, etc. But worst of all, it's simply ridiculous that you
_still_ can't move an X client between servers without terrible hacks.

~~~
dexen
You are mistaking idea with implementation.

RDP is, ultimately, a bitmap transfer protocol, with some goodies like
compression and transfer of only the changed parts.

X11, on the other hand, provides both bitmap and raster transfer. It's up to
the application to decide which parts of widgets are drawn pixel by pixel and
which are drawn as shapes. With raster transfer, you can get the smallest
possible footprint. Also, X11 is asynchronous in default configuration, so
round-trip times is not the problem in general case.

As far as anecdotal evidence is valid, I've been using X11 version of Acme [1]
over Ethernet for about two years. It was pretty much undistinguishable from
running it locally -- virtually no latencies. Granted, the server was just a
few switches (perhaps also a router) away, but that's the business case for
X11 use.

As for USB, sound etc. transport -- not in X11 itself. But it's available in
NX [2], which is X11 with some extensions.

I'm worried X11 protocol could become a `second-class citizen' in POSIX GUI
stack. As soon as just one serious application starts depending on screen
being on the same machine as the process, others will follow soon and we'll be
_screwed_.

EDIT: you may also want to have a look at DXPC [3] -- it works surprisingly
well over medium-latency, low-bandwidth links like ADSL (with <50kbps
upstream). NX is said to be built on top of that.

\----

[1] <http://en.wikipedia.org/wiki/Acme_(text_editor)>

[2] <http://www.nomachine.com/>

[3] <http://www.vigor.nu/dxpc/>

~~~
albertzeyer
Afaik, both GTK and Qt (and probably most others) are drawing anyway pixel by
pixel.

~~~
wladimir
Nowadays, both GTK (through Cairo) and Qt (through QPaintEngine) use XRender
and/or OpenGL, which leaves the pixel-level stuff to the GPU.

------
Symmetry
Personally I also use X network transparancy a lot, and I would be very sad to
lose that. Apparently some constructive people feel the same way, because
looking at the wayland-devel mailing list there there are apparently some
people hard at work right now adding network transparency to Wayland.

~~~
danssig
>Personally I also use X network transparancy a lot, and I would be very sad
to lose that.

Taking network transparency out of the core, where it has no business being,
does not mean you have to lose it. It would simply need to be implemented in
libraries or somewhere at a higher level, with the advantage that the vast
majority of us who never use it don't have to "pay" for it.

>Apparently some constructive people feel the same way, because looking at the
wayland-devel mailing list there there are apparently some people hard at work
right now adding network transparency to Wayland.

This misleading sentence made me nervous that Wayland was just going to be
another useless reimplementation of the (IMO, obsolete) X protocol. But [1]
seems to clearly indicate that this is not the case. What are you referring to
exactly?

[1] [http://lists.freedesktop.org/archives/wayland-
devel/2011-Feb...](http://lists.freedesktop.org/archives/wayland-
devel/2011-February/000722.html)

~~~
Symmetry
Instead of working the way X does, the intent in Wayland is to do all
rendering client side (the way things are done in practice under X these days
anyway). Did you see the big thread on the mailing list about "Finishing the
network protocol"?

~~~
danssig
>the way things are done in practice under X these days anyway

Sans the round tripping, which was the main point of this project.

>Did you see the big thread on the mailing list about "Finishing the network
protocol"?

Yea I saw that thread, it was just about the protocol they're using. Has
nothing to do with X-style network transparency.

~~~
jmillikin
> Sans the round tripping, which was the main point of this project.

The "main point" of Wayland has nothing to do with eliminating the (trivial)
overhead of network transparency; rather, it's to finally get rid of all the
legacy cruft that's accumulated in the X11 protocol over the years.

Much of X11, such as fonts, graphics primitives, and color palettes, is
completely unused by modern clients (even remote ones) -- it makes sense to
simplify the protocol by dropping such legacy features.

------
danssig
It's good to see Linux finally address one of its biggest (if not _the_
biggest) weaknesses: the display stack. Interesting that several groups have
tried this same thing [1] but it wasn't until Wayland that it got traction.
Still, I'm happy to see it happening at all.

[1] e.g. <http://en.wikipedia.org/wiki/DirectFB>

