On 2023-06-13, Po Lu wrote:
Ivan Shmakov writes:
Now, I don't have any measurements to back this claim, but note
that while /classic/ X software sends short commands to the X
server (draw a line here, render a string there), /modern/
software mostly just pushes pre-rendered pixmaps to the server.
This is untrue. The GTK toolkit uses Cairo, which utilizes the X
rendering extension to composite trapezoids, glyphs and pictures.
Little if any rendering is done by the client itself.
There, VNC protocol may have an advantage, as it's pretty much
dedicated to shoving image data around, and does not support
requests such as drawing polygons on the server, which modern
software won't use anyway.
Only if you're using software that uses direct GL rendering.
Most software (both Qt and GTK+) makes ample use of the X rendering extension.
If you mostly want to use modern software (Darktable, Chromium,
Libreoffice, Merkaartor, that sort of thing) it's worth trying
VNC, which may happen to have less overhead in this case.
I don't know what Merkaartor is,
but both Darktable (Qt) and Libreoffice will use the X rendering
extension.
While I'm aware of the /existence/ of Xrender, I admit I know
virtually nothing as to what extent it's actually used, and
especially how much network traffic its use saves, as compared
to classic X facilities, X pixmaps, and VNC. My experience,
however, so far has been that modern X applications tend to be
more 'responsive' when used over VNC.
Do you have any suggestions on how to measure the network traffic
involved for those cases?
I suppose that aside of corner cases, the X11 requests like
PolyText8 will still use the least amount of network traffic
to display a given string, no?
I gather such software also falls back to some other means when
the extension is not available?
I've just checked and it appears that TightVNC that I run modern
X applications over doesn't support Xrender:
$ xdpyinfo
...
number of extensions: 7
BIG-REQUESTS
MIT-SHM
MIT-SUNDRY-NONSTANDARD
SHAPE
SYNC
XC-MISC
XTEST
Despite of this, I don't seem to have any issues with said
applications.
I've also tried $ xterm -fa "Bitstream Vera Sans Mono", which
works without issue there; and $ xclock -render, which appears
to fall back to -norender.
A Qt-based OpenStreetMap editor. I'm not particularly happy
with it, but until I can have something better (I'd rather
prefer Tk, or at least wxWidgets), it works. Mostly.
Given that the bulk of network traffic generated by Darktable
is typically pieces of photographs, I don't think Xrender makes
much difference overall.
Do you have any suggestions on how to measure the network traffic
involved for those cases?
On 2023-06-13, Po Lu wrote:
Ivan Shmakov writes:
Now, I don't have any measurements to back this claim, but note
that while /classic/ X software sends short commands to the X
server (draw a line here, render a string there), /modern/
software mostly just pushes pre-rendered pixmaps to the server.
This is untrue. The GTK toolkit uses Cairo, which utilizes the X
rendering extension to composite trapezoids, glyphs and pictures.
Little if any rendering is done by the client itself.
While I'm aware of the /existence/ of Xrender, I admit I know
virtually nothing as to what extent it's actually used, and
especially how much network traffic its use saves, as compared
to classic X facilities, X pixmaps, and VNC. My experience,
however, so far has been that modern X applications tend to be
more 'responsive' when used over VNC.
Do you have any suggestions on how to measure the network traffic
involved for those cases?
On 2023-06-23, Po Lu wrote:
Ivan Shmakov writes:
My experience, however, so far has been that modern X applications
tend to be more 'responsive' when used over VNC.
The rendering extension exists because the X protocol itself doesn't
provide alpha compositing capabilities, complex transforms and filters,
or anti-aliased polygon rendering. If your program has no use for such facilities, it has no use for XRender, but most newer X clients do.
I can't explain your experience, but I suspect it's due to round-trip latency, not to the network traffic used by drawing requests.
Do you have any suggestions on how to measure the network traffic
involved for those cases?
Not really, sorry.
I suppose that aside of corner cases, the X11 requests like
PolyText8 will still use the least amount of network traffic to
display a given string, no?
I suspect that RenderCompositeGlyphs8 and RenderCompositeGlyphs16
have comparable network traffic requirements to PolyText8/16.
Glyphs are only transferred to the server once, when the font is
opened by the client; references to them use numeric IDs assigned
by the RenderAddGlyphs request.
I don't see why it might differ between VNC and X, but it's been
some time since I've last been using X over SSH (to any extent),
so I might be forgetting some important details.
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 379 |
Nodes: | 16 (2 / 14) |
Uptime: | 72:11:16 |
Calls: | 8,084 |
Calls today: | 2 |
Files: | 13,069 |
Messages: | 5,850,068 |