From: eswu@expo.lcs.mit.edu (Eng-Shien Wu)
Newsgroups: comp.unix.aix
Subject: MIT X11R5 Performance Patches
Summary: Additional patches to improve skyway Xserver performance
Keywords: X11R5 Skyway Xserver
Date: 18 Aug 92 02:05:18 GMT
Organization: X Consortium, MIT Laboratory for Computer Science

-------------------------------------------------------------------------
Updated to include info on patching UNIX domain sockets for AIX 3.2.
If you grabbed these files before, they are still the same... no
further enhancements have been made since January 24, 1992.
-------------------------------------------------------------------------

		     X11R5 Skyway Performance Patch 1
			   January 24, 1992
		      README updated August 17, 1992


This distribution contains new files and patches to the MIT X11R5
sample Xserver for the RISC System/6000 colorgda adapter (also
known as "skyway").  There are three parts to the distribution:

	sky.README		- Instructions you are reading
	sky-perf-1.tar.Z	- Tar of entire skyway directory
	sky-cfb.patch		- Patches to servermd.h, cfbblt.c,
					ibmInit.c, and ibmUtils.c

	sky-aix32.patch		- Patch to XConnDis.c to make UNIX
				  domain sockets work on AIX3.2
				  (BSD4.3 -> BSD4.4 networking)

These files are available for anonymous ftp in the contrib
directory of export.lcs.mit.edu.


#include <std/disclaimer.h>

    IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
    INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS, AND
    NONINFRINGEMENT OF THIRD PARTY RIGHTS, IN NO EVENT SHALL IBM BE
    LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
    DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
    WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
    ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
    PERFORMANCE OF THIS SOFTWARE.


Prerequisites: MIT public fixes 0 thru 16

    It is recommended that you apply this performance patch after
    applying MIT public fixes 0 thru 16 to the original MIT X11R5
    release.  Specifically, public fixes 1 and 7 must not be applied
    after applying this performance enhancement. These fixes can be
    obtained via anonomous ftp from export.lcs.mit.edu in the
    directory /pub/R5/fixes.


Instructions to apply performance patch:

    In the instructions, replace MITSRC with the top of your source tree
    (the directory containing the "mit" and "contrib" subdirectories).

    1. Uncompress tar file, and move tar and patch file

	uncompress sky-perf-1.tar.Z

	mv sky-perf-1.tar MITSRC/mit/server/ddx/ibm
	mv sky-cfb.patch MITSRC

    2. Apply patches to servermd.h, cfbblt.c, ibmInit.c, and ibmUtils.c

	cd MITSRC
	patch -p -s < sky-cfb.patch

    3. Untar skyway directory

	cd MITSRC/mit/server/ddx/ibm
	mv skyway skyway.old
	tar xvf sky-perf-1.tar

    4. Rebuild Xibm

	cd MITSRC/mit/server
	make Xibm


What should be faster:

    GetImage, PutImage, CopyArea (window to/from pixmap, pixmap to
    pixmap), FillRectangles, and redrawing tiled window backgrounds
    should be much faster. BackingStore save and restoring should
    be much faster. Text should be a little bit faster. The IBM
    X11R4 Xserver will still be faster on average.


Note for AIX V3.2:

    Because AIX3.2 switched to BSD4.4 socket address structures,
    a patch to lib/X/XConnDis.c is neccessary for the UNIX domain
    sockets to work.

    To patch XConnDis.c:

	mv sky-aix32.patch MITSRC/mit/lib/X
	cd MITSRC/mit/lib/X
	cp XConnDis.c XConnDis.c.save
	patch -p -s < sky-aix32.patch
	make libX11.a


    Note:

    1. This does not fix all the places where socket addresses
       are used, so do *not* turn off the network option "compat_43"
       (by the "no" command).

    2. A full fix will be released someday, but do not hold your
       breath because it affects a lot of files in the MIT tree,
       which have previous changes that also affects more files.
       When a full fix comes, you will have to back out the
       changes to XConnDis.c then.


Where do I send bug reports?

    Bug reports should be sent to xbugs@expo.lcs.mit.edu using the
    form provided in MITSRC/bug-report. Specify area as ibmddx.
    Specify version as "R5, public-patch-?? + sky-perf-1".

--
Eng-Shien Wu (eswu@expo.lcs.mit.edu)
IBM Graphic Systems/MIT X Consortium