X11 Optimizations?

Ken Chin-Purcell ken at msc.EDU
Sat Nov 3 01:40:53 AEST 1990


James Cerrato writes:

|> We are building a graphics application using X11R4 [...]

|>    "For the best performance, when the client and server reside on the same
|>     machine, communication between them is often implemented using shared
|>     memory."

That is probably too sweeping of a statement.  For example, the
communication between client and server on a DECstation 5000 (fastest
X I've used so far) doesn't use shared memory, and it is very quick.

A shared memory connection can give a performance kick when
transffering a lot of data, such as with an XPutImage or XGetImage
call.  To optimize these calls the noble MIT programmers wrote an
unofficial server extension to implement shared memory image
transfers.  Using the extension, you (the X window client programmer)
place the image data in a shared memory segment before calling
XShmPutImage or XShmGetImage.  The request goes through the normal
socket channels, but the image data skips the slow road.

However, the MIT X11R4 server doesn't build on the SGI, so we can't
use the shared memory extension.  For my application
XPutImage isn't a bottleneck.  Currently I'm using the MIT X11R4
distribution to build clients.  I run my X clients against the SGI
X11R3'ish server.  Except for a bug with pulldown menus in Motif my
clients are functional, but not very fast.  The performance problem
though is not the connection, it's that SGI hasn't optimized their
server yet.

To SGI: X windows is important to me, and I'm looking forward to a faster
server.  I would like a level of integration between X and gl where I
could render in gl but have window configuration handled by X.  I am
only using X for the user interface toolkits; I don't need to mix X
and gl graphics in the same window.

--
--  Ken



More information about the Comp.sys.sgi mailing list