XComposite input redirection/transformation proposal

Carsten Haitzler (The Rasterman) raster at rasterman.com
Sun Feb 17 17:16:24 PST 2008


On Sun, 17 Feb 2008 18:22:22 +0200 Daniel Stone <daniel at fooishbar.org> babbled:

> On Sun, Feb 17, 2008 at 05:16:29AM +0100, Dennis Kasprzyk wrote:
> > David Reveman made patches for such a system a long time ago, but no one
> > with enough xserver knowledge tried to finalize the patches for xserver
> > inclusion. Everyone is saying that we need it, but it's always only moved
> > to the todo list for the next xserver version.
> 
> Myself and Peter have just had other stuff on our plate.  I may need it
> for work, so might have time to clean it up and merge it (just a couple
> of small problems remaining), but if you worked on it, I'm sure you
> could get it to a mergeable state orders of magnitude faster than a
> client-based system.
> 
> Bear in mind that client-based means that you're going to have
> unacceptably latent events, due to every pointer movement now being
> dependent on a round trip.

the only other option than client side or a serious of transform
matrices/meshes uploaded to the server is... being able to upload small
snippets of logic code to do the math of a transform and minimal logic (if,
then, else, get data like rect/clip lists, window trees and info and just
hobble this info together into deciding on a new co-ord to transform to and
possibly also cursor changes. this of course means - u'd need to upload some
form of "program" - admittedly a simple one, but that implies u'd need an
interpreter in X and the ability to upload code for it (you could argue text or
bytecode ... but you are entering a new world of principles here - the ability
to upload arbitrary reams of code and have the server run them - within some
form of sandbox - is this something we want to do?). we could have a very small
VM and a very limited sandbox as well as limit exec cycles so u can't ever get
infinite loops or recursion etc. to keep any damage such uploaded code could do
to a minimum of "annoying" rather than fatal.

so no round-trip latency anymore - the ability to run arbitrary logic/code on
transforms, and it runs in the server - solves most problems, but introduces a
new one that is probably able to be contained - but not eliminated.

(note - when i say this i am not thinking - let's put a jvm in x or anything
that large - i'm thinking really minimal interpreter/vm with no access to
anything other than what x itself grants)

so?

-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler)    raster at rasterman.com




More information about the xorg mailing list