Re: direct rendering and compatability
Alan Coopersmith <[email protected]>
| Newsgroups | gmane.comp.xfree86.forum |
|---|---|
| Message-ID | <[email protected]> |
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- [email protected] Sun Microsystems, Inc. - Sun Software Group Quality, Integration, & Customer Success (QICS) Platform Globalization Engin. - X11 Engineering