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

Re: Graphics performance under linux




Hi Paul,

> In X the requests are made via communication on a socket.  At the
> other end of the socket the graphics server calls functions on the
> graphics driver (at which point it's similar to MSWindows).
> 
> The problem is the communication via sockets.  Even when connecting
> to localhost the mechanism is not as efficient as a direct API call.

It may interest you to know that as well as Unix domain sockets being
used for a DISPLAY of `:0', some vendors have used other techniques to
speed up this connection.

IBM's AIX has an undocumented `shared memory socket' used by their X
server.  They have similar semantics to Unix domain sockets but the
data is visible to both parties via shared memory.

Barco have an X server and X client library that also uses shared
memory as a transport but without socket semantics.

Even where a socket interface is used to transfer requests and replies,
extensions exist where large volumes of data, typically pixmaps, are
transferred `out of band' via shared memory.

Lastly, `connecting to localhost', i.e. a DISPLAY of localhost:0, often
opens a TCP/IP socket connection to 127.0.0.1.  This is normally not as
fast as a Unix domain socket.  It's defined that a DISPLAY of `:0'
instructs the library to use the fastest connection method available.
This should be used in preference to `localhost:0'.  It might be a Unix
domain socket, but on some platforms, or in the future, could be a
shared memory mechanism.


Ralph.

-
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/
IRC Channel:   irc.openprojects.net / #kernelnewbies
Web Page:      http://www.kernelnewbies.org/