From: Shawn Rutledge <lists@ecloud.org>
To: 9front@9front.org
Subject: Re: [9front] Thoughts on Wayland?
Date: Mon, 5 Aug 2024 13:51:26 +0200 [thread overview]
Message-ID: <20240805115126.rm47l4ifx7rrwgtx@black> (raw)
In-Reply-To: <CAFSF3XO1nu9MGRxQen5doOabfr1sVuT8uNiGTxUDqWD45o6ciw@mail.gmail.com>
On Mon, Aug 05, 2024 at 10:02:10AM +0200, hiro wrote:
> > In that respect, it's strictly a worse fit for Plan 9 than X, which at
> > least is designed with networking in mind, I suspect?
>
> Both Plan 9 and X are designed with networking in mind.
>
> > Though, there is a tool for networking transparency on Linux with
> > Wayland, so it's not impossible.
>
> I bet they are multiplexing all graphical output as a lossy video stream.
> Careful design from the ground up on the remote protocol level is
> needed to solve the problem in a lossless, bandwidth-efficient, and
> roundtrip-reducing way. And then all applications using the protocol
> have to use it in the right way and not try to sabotage all the
> efforts that got put into this mechanism: modern x11 programs suffer
> from the same problem that wayland does, kde/gnome/google/mozilla et
> all started to use x11 inefficiently, introducing bad
> round-trip-sensitive implementations for unimportant cosmetic features
> like animations.
Yes that's an old problem. One place where I worked over 20 years ago,
the boss had set up dual networks: one for internal stuff and one for the
Internet. He had a pile of surplus NCD X-terminals, which he made us use
for Internet stuff, running the actual programs on a shared Sun machine: so
fully remote over 100mbit ethernet. (Of course he was also routinely spying
on us to make sure we didn't waste too much time web-surfing or
socializing.) It quickly became clear which programs were efficient that
way and which weren't. Qt and GTK were both already trying to render the
whole UI into one window, doing widget compositing themselves; I think this
explanation here is from that time period (and offers workarounds):
https://doc.qt.io/qt-6/qwidget.html#native-widgets-vs-alien-widgets
That just made them feel much slower under such conditions, because often
the buffer for the whole window had to be resent. (VNC works better than
that, because of tiling.) But the tradeoff is if each widget generates
resources on the X11 server side (which in this case had a rather small
amount of memory, a few megabytes), there is a limit to how complex the UI
can be (so you are stuck either way; even using too many colors was
expensive on those terminals). And the window-per-widget architecture is
slower in the more common case where the X server is on the same machine
where the application runs, shared memory is possible, and you might even
have a GPU. Don't trust the X server to be the quickest way to render your
2D stuff: do it on your own if you want to be sure that it's as quick as it
needs to be. Plus, AA really benefits everyone, and
https://en.wikipedia.org/wiki/X_Rendering_Extension is only for fonts, not
for arbitrary graphics. (Same problem as on Plan 9. Should we blame Keith
Packard for not going further than just font rendering?) There's no way to
have AA in arbitrary 2D graphics rendered on the X server, AFAIK. So
basically the widget toolkits gave up on supporting efficient networked X11
ages ago, and not for completely frivolous reasons. There were only a few
users, maybe not vocal enough. Not sure what's the state-of-the-art toolkit
that is actually good at it, though. TK was ok, as I remember.
(The work itself at that company was interesting: on the upside, where else
could I have been paid to write Scheme full-time for a year? I still use
Scheme now because of what I learned there. And I was working on remote-UI
stuff there too. But got fed up with the low pay and control-freak
attitude, and left as soon as I got a better offer.)
Anyway the toolkits got away with that on X11, which maybe contributed to
the assumption that shared memory is fine for Wayland as well, and
remote-desktop use cases are a niche case that can be served with things
like VNC, RDP, and video streaming. The KDE/Plasma project is pursuing all
of these, by the way. There's pipewire.org which I got the impression was
for audio first, and then got video shoehorned in as well. Accordingly
there's https://invent.kde.org/plasma/kpipewire ...not that I've tried it.
And https://conf.kde.org/event/5/contributions/133/ ... that one surprised
me, because I thought RDP is a complex Microsoft beast. Seems like a lot of
work to support that in open source.
But if video streaming is the solution, it seems to me an assumption is
being made that the server (where the applications run) has a GPU then: it
would help for rendering the applications (with AA, blending, animations
and all), and it would help for video compression too. Somewhat of a break
from tradition then. I agree that a solution designed specifically with low
bandwidth and low latency in mind ought to be better. But is 9p really for
that? I'm trying to work that way; time will tell...
next prev parent reply other threads:[~2024-08-05 11:52 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-04 19:26 Willow Liquorice
2024-08-04 19:44 ` Stuart Morrow
2024-08-04 19:49 ` Willow Liquorice
2024-08-04 19:54 ` Eli Cohen
2024-08-04 19:59 ` Eli Cohen
2024-08-04 20:04 ` Eli Cohen
2024-08-04 20:05 ` Eli Cohen
2024-08-04 20:09 ` Willow Liquorice
2024-08-04 20:29 ` Eli Cohen
2024-08-04 21:23 ` ori
2024-08-04 21:43 ` ori
2024-08-04 22:00 ` David Leimbach
2024-08-04 22:22 ` ori
2024-08-04 22:42 ` David Leimbach
2024-08-04 22:57 ` ori
2024-08-04 21:10 ` Willow Liquorice
2024-08-04 21:24 ` ori
2024-08-04 21:25 ` Eli Cohen
2024-08-05 8:13 ` Willow Liquorice
2024-08-05 8:29 ` ori
2024-08-05 8:52 ` sirjofri
2024-08-05 8:57 ` Noam Preil
2024-08-05 9:12 ` sirjofri
2024-08-05 11:51 ` hiro
2024-08-05 9:03 ` Willow Liquorice
2024-08-05 11:05 ` Shawn Rutledge
2024-08-05 12:01 ` hiro
2024-08-05 12:26 ` sirjofri
2024-08-05 11:15 ` David Arnold
2024-08-05 11:47 ` hiro
2024-08-05 12:35 ` sirjofri
2024-08-04 20:01 ` Willow Liquorice
2024-08-04 21:23 ` sirjofri
2024-08-04 20:08 ` mkf9
2024-08-04 20:35 ` Willow Liquorice
2024-08-04 20:32 ` Pavel Renev
2024-08-04 21:31 ` ori
2024-08-05 6:09 ` Noam Preil
2024-08-05 8:02 ` hiro
2024-08-05 11:51 ` Shawn Rutledge [this message]
2024-08-06 16:37 ` hiro
2024-08-06 17:57 ` sirjofri
2024-08-07 9:27 ` Steve simon
2024-08-07 11:47 ` hiro
2024-08-05 12:54 ` Willow Liquorice
2024-08-05 13:13 ` [9front] Fortune worthy Steve simon
2024-08-05 20:06 ` [9front] Thoughts on Wayland? Jon Sharp
2024-08-06 0:07 ` Eli Cohen
2024-08-06 0:09 ` Eli Cohen
2024-08-06 1:57 ` Michael Misch
2024-08-06 13:01 ` Emil Tomczyk
2024-08-04 22:27 ` Dave MacFarlane
2024-08-05 6:10 ` Noam Preil
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240805115126.rm47l4ifx7rrwgtx@black \
--to=lists@ecloud.org \
--cc=9front@9front.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).