Remote X

Russell Shaw rjshaw at netspace.net.au
Wed Feb 3 02:46:09 PST 2010


Michel Dänzer wrote:

>> On Tue, Feb 2, 2010 at 6:18 AM, Russell Shaw <rjshaw at netspace.net.au> wrote:
>>> Hi,
>>> Is remote execution of X clients away from the X server still regarded
>>> as a design goal, or does everyone just develop for client applications
>>> that only run on or close to the X server machine?
>>>
>>> With a unicode text widget, every time a character is entered, the
>>> line or paragraph(s) need to be moved and/or reshaped. This can mean
>>> sending a few largish bitmaps for every key press. Other toolkits
>>> may add new polygon tesselated glyphs to the XRender cache:
>>>
>>> http://www.keithp.com/~keithp/talks/usenix2001/
>>> http://cgit.freedesktop.org/xorg/proto/renderproto/plain/renderproto.txt
>>>
>>> With a cursive font, all the cursive glyphs on a line could compress
>>> when the line is close to full, but before the need for a linebreak.
>>> That would stress out the cache advantage of XRender. Another problem
>>> with XRender is that it's computationally expensive for small systems
>>> without polygon hardware.

 > On Tue, 2010-02-02 at 23:33 -0800, Corbin Simpson wrote:
 >> In theory, sure, but I don't think I've ever seen anybody actually
 >> have any problems with this. In my experience the glyph cache is
 >> actually too big sometimes; when doing 3D drivers, if I accidentally
 >> clobber my cache, I need to go open up a character map and scroll
 >> through a dozen fonts to clear it.

 > That's the EXA glyph cache pixmap, whereas Russell was presumably
 > referring to the generic RENDER mechanism of the X server caching glyph
 > data uploaded by the clients (which is currently done by storing each
 > cached glyph in a pixmap of its own). I agree with others though that
 > his concern seems rather hypothetical.

Hi,
I was referring to the generic RENDER mechanism.

I'd think there wouldn't be many reports of latency problems, because
there's probably few users that use cursive fonts on a remote connection
further than a local LAN.

Xrender may be able to avoid the problem of compressing and expanding
glyphs by applying a simple transform to the glyph polygons it has cached.
"Arbitrary affine transformations" are mentioned in
http://www.keithp.com/~keithp/talks/usenix2001/xrender

Another efficient way to cache arbitrary glyphs in the server is to
upload them as line and parabola segments as they are stored in opentype
font files. It is simple to compress or expand them before rendering in
the Xserver. Polygons are not needed. This would be more agreeable to
low-end hardware. It would certainly be an easier extension to understand.

With even the smallest of network latency, i'd think the speed required
to software render a sub-pixel positioned and antialiased glyph would be
insignificant.



More information about the xorg mailing list