[forum] direct rendering and compatability
Alan Coopersmith
forum@XFree86.Org
Tue, 25 Mar 2003 11:07:24 -0800
Gregor Burger wrote:
> As far as I understand the x communication:
> 1. a client makes a request through an api-call
> 2. the request is translated into the x-protocol and sent over the network
This shows a common misconception. Apps running on the same host as the X
server never use the network - they use whatever form of local IPC is believed
to be best for the platform. On many systems, this is Unix domain sockets which
are quite fast. Solaris uses named pipes which are slightly faster than Unix
sockets on Solaris.
> 3. the server gets the request and decodes it
> 4. the server calls a function (probably in a driver to execute the
> commands from the client.
>
> and vice versa.
>
> What I can see is that step 3 and 4 aren't neccesery if you work on the
> localhost (90% of every x-session). so my question: Is it possible to detect
> whether I'm working over the network or not, and if not just call the
> functions direct (through an api)?
How do you manage multiple applications if each one is writing directly to the
screen without a central server to coordinate them? How do you handle input
events without a central server to receive them and distribute them? Do you
send them to every app, making them all wake up and determine whether they want
this event? That would seem to be a true performance killer.
So once you have a central server, you need some sort of IPC, and you're right
back to the current X model.
--
-Alan Coopersmith- alan.coopersmith@sun.com
Sun Microsystems, Inc. - Sun Software Group
Quality, Integration, & Customer Success (QICS)
Platform Globalization Engin. - X11 Engineering