emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Emacs, QT and Cairo


From: Stephen J. Turnbull
Subject: Re: Emacs, QT and Cairo
Date: Wed, 14 Jul 2010 10:39:02 +0900

Chad Brown writes:

 > It would be interesting to see an analysis of emacs' redisplay
 > needs in light of modern cpu/gpu/network usage, or even a list of
 > needs for emacs' redisplay priorities.  I recall the 18->19->20
 > discussions vaguely, but I'm willing to wager that there are far
 > fewer people using x-terminals over 14.4k modem lines these days.
 > :-)

Nowadays redisplay is all about memory and networks.  Forget CPU and
GPU.  Client memory is probably not that important (unless you cache a
lot of off-screen real estate), and even server memory shouldn't be a
problem for Emacs, which makes fairly modest demands (except for glyph
caching if you're using Xft).

I regularly get complaints from people about redisplay over the
network.  The problem as usual is not bandwidth (what is measured by
"14.4k"), but latency.  It's the number of roundtrips that matters,
and modern WANs often have greater average latency than a modem line.
I'm typing this on a link that goes through 10 hosts with IPs to
travel a net of 4.5km, and the performance is, if anything, worse than
the 28.8k modem I used to use; on my sabbatical that was 15-20 hosts
and 10,000km, so speed of light became a factor and it could be awful.
Of course if you've got lots of toolbar icons and suchlike, it takes
more time to upload them to the X server over a 14.4k line, but once
they're uploaded, they generally hang around for a long time since
server memory has expanded enormously.

 > A `truly excellent' effort in this space would almost certainly
 > require a huge amount of work from at least one of the already
 > generous/overburdened developers who truly understands the
 > redisplay internals,

That's not clear (although my opinion may not be accurate since the
XEmacs redisplay is quite different).  For example, one of the tasks
that has a very complicated implementation in the XEmacs redisplay is
drawing the cursor.  But that's because in the basic X protocol you
need to draw things in layers.  It's possible that in a Cairo
implementation some of these things could call out to the RENDER
protocol, which would allow full use of Porter-Duff.  While that would
indeed require somebody to book up on Porter-Duff and probably some
ingenuity in figuring out how to use the 31 (IIRC) composition
operators to achieve minimal roundtrips, this would be quite local,
and not require overall redisplay complexity.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]