From: glenn@cs.utexas.edu (Glenn G. Lai)
Newsgroups: comp.windows.x
Subject: SpeedUp 1.1.1
Date: 12 Apr 92 05:07:35 GMT
Article-I.D.: kalahari.kugkhnINNkl
Organization: CS Dept, University of Texas at Austin
NNTP-Posting-Host: kalahari.cs.utexas.edu


I've changed the SpeedUp files on export.lcs.mit.edu to fix a bug.  If you
don't want to get the tar file again, simply change the "2" to a "1" in line
306 of "gVHLine.s."  The README is attached below. 


-----Begin-----

The file SpeedUp.tar.Z contains the assembly source and patched cfb.banked
files to build an enhanced X11R5 server (for 386 UNIXes with ET4000 boards)
from the official X386 code in X11R5; this particular server is a lot faster
than X386 1.2 and its current version is 1.1.1.  The licensing conditions
are reproduced below.

/******************************************************************************
	Copyright 1992 by Glenn G. Lai				   	

	All Rights Reserved

Permission to use, copy, modify, and distribute this software and its
documentation for any NON-COMMERCIAL purpose is hereby granted without
fee, provided that the above copyright notice and this permission notice 
appear in supporting documentation, that the copyright notice defined
as ".string "Copyright 1992 by Glenn G. Lai" in the source code not be
removed and its presence be demonstrable by its appearance in the object
code generated from the (modified) source, and that the name of "Glenn G. Lai"
not be used in advertising or publicity pertaining to distribution of the
software without specific, written prior permission; a recipient of derived
work is subject to all the restrictions herein.  Glenn G. Lai makes no
representations about the suitability of this software for any purpose.
It is provided "as is" without express or implied warranty.

To distribute this software for commercial purposes requires that you observe
the following conditions IN ADDITION to the ones stated above: 

(1)  You must first inform me and receive a confirmation. 

(2)  If you are an X server vendor, you must, at no charge, give me a complete
binary copy of your server containing my code upon request.  This applies to 
all versions of your X server containing my code.

(3)  If you are a UNIX vendor, you must, at no charge, give me a copy of an 
unlimited-user version of your UNIX with development system and all your
add-on packages upon request.  This applies to all versions of your UNIX
with an X server containing my code. 

To use this software for any purpose other than the ones described above, 
contact me first to obtain the licensing information.

GLENN G. LAI DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL
GLENN G. LAI 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 TORTUOUS ACTION,
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
SOFTWARE.


Glenn G. Lai
P.O. Box 4314
Austin, Tx 78765
(glenn@cs.utexas.edu)
4/5/92
*******************************************************************************/

1.  Things You Should Know.

SpeedUp is specific to the ET4000 and has the same external interface as does
X386 1.2; however, it thinks the virtual width is always 1024.  Set your virtual
screen to 1024x1024--that's what I do; this means you should get 1M for your
video adapter.

2.  How to Build SpeedUp 

Get the X386 server code.  SpeedUp.tar.Z contains all replacement files for the
`cfb.banked' and `vga' directories under `mit/server/ddx/x386'.  Do a `make
Makefile' in `vga', and then do a `make' in `mit/server'.  If this sounds like
gibberish, let other people do it for you.

3.  Notes on Performance 

The most obvious improvements are bitblts, solid area fills, and text; I did
some line draws merely to raise the XStone rating.  You probably can't do very
much about bitblts and solid area fills; on a system with a 33-Mhz 386 + Cyrix
83D87 and an Orchid ProDesigner II, SpeedUp can't even run the ISA bus at the 
full 8 MHz because the Orchid board can't keep up with it. 

X386 1.2 is slower than 1.1b, despite the fact that X11R5 is generally faster 
than X11R4, because it hasn't incorporated 1.1b's assembly speedup routines.
However, don't waste time trying to use 1.1b as a base to speed up text
operations; the X11R5 fonts are organized differently, and 1.1b doesn't have
any assembly speedup code for drawing text. 

Two suggestions for people who want even better performance:

(1)  Get a faster processor.  A 33-Mhz 486 can double the text performance
over that of a 33-Mhz 386; you probably can't perceive other improvements.

(2)  If your ET4000 board, like my Orchid, has DRAMs, using a slower dot clock
(possibly by going to a lower resolution, e.g, from 1024x768 to 800x600) will
speed things up; using a smaller font helps, too.

(3)  Someone pointed out that disabling caching for video memory also improves
performance.   All of the 386/486 motherboards I've seen don't cache memory
locations (I'm not talking about shadow RAM here) that fall in 640K-1M by
design; in other words, you can't even enable caching for those locations.
However, if your motherboard is designed differently but provides the option
of disabling caching for certain memory range(s), disable caching for 640K-1M.

(4)  Bugs

David Dawes pointed out an underline bug in versions of SpeedUp up to 1.1.
This has been corrected in 1.1.1. 

There are probably no bugs left in my assembly code or C patches; however, the
X386 bitblt code is bugged, with the culprit being `cfbblt.c' (`cfbbitblt.c' is
probably bugged too).  I know how to fix the problems, but the information
falls under a "non-free" claim; the fixes are NOT in SpeedUp.tar.Z.  I have yet 
to see complaints about them, so they probably don't matter (to you) anyway. 



Glenn G. Lai
4/12/92

-----End-----


Glenn
glenn@cs.utexas.edu